如何使ListView
的第一个可见元素与其他layout
具有不同的layout
。
我创建了一个具有2种不同布局的自定义适配器。现在,当项目进入第一个position
时,如何进行{{1}}更改?
答案 0 :(得分:4)
要获得具有不同布局的listview的第一项,可以使用以下代码。但是当列表中的项目小于可见项目的数量时,列表视图不会移动。
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布局。
答案 1 :(得分:2)
试试这个
int visibleposition = ListView.getFirstVisiblePosition();
现在针对此特定位置更改列表项的背景,如此
答案 2 :(得分:0)
在getView()中,您可能会为不同的位置充气不同的布局。做点什么
if(position==0){
inflate(first_layout);
else{
inflate(other_layout);
答案 3 :(得分:0)