码迷,mamicode.com
首页 > 其他好文 > 详细

保持listview当前位置

时间:2016-04-09 13:56:16      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:

保持listview滑动的位置,一般用在增加listview子item中布局的评论或者退出当前活动,再次进入继续阅读时。

 

  利用ListView.getFirstVisiblePosition()来获取当前可见的第一个Item的position,在滚动监听中设置

    @Override
    public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
        this.firstVisibleItem = firstVisibleItem;
        this.lastVisibleItem = firstVisibleItem + visibleItemCount;
        this.totalItemCount = totalItemCount;
    }

    @Override
    public void onScrollStateChanged(AbsListView view, int scrollState) {
        this.scrollState = scrollState;

        if (scrollState == AbsListView.OnScrollListener.SCROLL_STATE_IDLE) {
            position = this.getFirstVisiblePosition();//获取在总的列表条数中的索引编号
            View firstVisibleItem = this.getChildAt(0);//获取在可视的第一个列表项
            scrolledY = firstVisibleItem.getTop();//获取第一个列表项相对于屏幕顶部的位置
        }

    }

其中存储position和scrolledY,并在关键位置调用


 listView.setSelectionFromTop(position, scrolledY);(api 21)


调用上个方法就可以恢复listview 当前位置了。

 

保持listview当前位置

标签:

原文地址:http://www.cnblogs.com/xiaotaoqi/p/5371434.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!