ListView с первым видимым элементом, имеющим разный макет
Как я могу сделать первый видимый элемент ListView с другим layout от других.
Я создал пользовательский адаптер с двумя разными макетами. Теперь, как я могу изменить layout, когда элемент входит в первый position?
Ответ 1
чтобы первый элемент списка имел разный макет, можно использовать следующий код. Но список не перемещается, когда элементы в списке меньше, чем нет видимых элементов.
list.setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
// TODO Auto-generated method stub
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
// TODO Auto-generated method stub
if(firstItem != firstVisibleItem)
{
firstItem = firstVisibleItem;
adapter.notifyDataSetChanged();
}
}
});
и внутри класса адаптера проверьте, что postion совпадает с firstItem, если его равным, тогда отображается макет detals.
Ответ 2
Попробуйте это
int visibleposition = ListView.getFirstVisiblePosition();
теперь для этой конкретной позиции измените фон элемента списка, подобного этому
Ответ 3
В getView() вы можете раздувать другой макет для разных позиций. сделать что-то вроде