An adapter for ListView, which can show different view and layout in each row.