zoukankan      html  css  js  c++  java
  • 保持listview当前位置

    保持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 当前位置了。

    
    
  • 相关阅读:
    log4j的使用
    关于spring读取配置文件的两种方式
    BeanUtils组件的使用
    javaee 自定义标签实战
    javaweb中的标签的核心标签库的常用标签
    对接口的思考
    二分查找
    java抽象类
    多例集合
    js中for循环的研究
  • 原文地址:https://www.cnblogs.com/xiaotaoqi/p/5371434.html
Copyright © 2011-2022 走看看