10

我怎样才能使第一个可见元素与其他元素ListView不同layout

第一个单元格有描述

当列表滚动并且第二个单元格位于第一个位置时,显示第二个单元格的描述

我创建了一个具有 2 种不同布局的自定义适配器。现在,当项目第一次出现时,我该如何进行layout更改position

4

4 回答 4

4

要获得具有不同布局的列表视图的第一项,可以使用以下代码。但是当列表中的项目少于可见项目的数量时,列表视图不会移动。

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然后显示细节布局。

于 2013-02-01T08:54:29.933 回答
2

尝试这个

int visibleposition = ListView.getFirstVisiblePosition();

现在对于这个特定位置,像这样更改列表项的背景

于 2013-01-25T11:55:08.607 回答
0

您可以尝试一些方法,例如

getFirstVisiblePosition

或者可能会回答你的问题

于 2013-01-25T11:16:42.370 回答
0

在 getView() 中,您可能会为不同的位置膨胀不同的布局。做类似的事情

 if(position==0){
           inflate(first_layout);
   else{
           inflate(other_layout);
于 2013-01-25T11:05:48.703 回答