zoukankan      html  css  js  c++  java
  • ListView常用操作

    1、判断是否滑到最底部以判断加载下一页

    首先ListView implements OnScrollListener

    再覆写onScrollStateChanged

        public void onScrollStateChanged(AbsListView view, int scrollState) {
    
            /*
             * ListView.getCount()(实际上是 AdapterView.getCount()) 返回的是其
             * Adapter.getCount() 返回的值。也就是“所包含的 Item 总个数”。
             * ListView.getChildCount()(ViewGroup.getChildCount) 返回的是显示层面上的“所包含的子
             * View 个数”。
             * 
             * 二者有什么不同?当 ListView 中的 Item 比较少无需滚动即可全部显示时,二者是等价的;当 Item
             * 个数较多需要滚动才能浏览全部的话, getChildCount() < getCount() 其中 getChildCount()
             * 返回的是当前可见的 Item 个数。
             */
            // 当不滚动时
            if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {
                // 判断是否滚动到底部
                //getChildAt是把footview也算进去的,lastChild获得的是footview
                View lastChild = getChildAt(getChildCount() - 1);
                if (view.getLastVisiblePosition() == view.getCount() - 1&&getBottom()-lastChild.getBottom()<=lastChild.getHeight()) {
                    // 这里是footview一旦被看到就执行,真正意义上的bottomend是把lastChild.getHeight()换成0
                    xListener.onBottomEnd();
                }
            }
        }


    2、判断Listview是否可以上滑,即此时应该在最顶部

        private void setIsAbleToPull() {
            // TODO Auto-generated method stub
            View firstChild = getChildAt(0);
            if (firstChild != null) {
                int firstVisiblePos = getFirstVisiblePosition();
                // 如果首个元素的上边缘,距离父布局值为0,就说明ListView滚动到了最顶部,此时应该允许下拉刷新
                if (firstVisiblePos == 0
                        && firstChild.getTop() == getResources().getDimension(
                                R.dimen.listview_top_padding)) {
                    ableToPull = true;
                } else {
                    ableToPull = false;
                }
            } else {
                // 如果ListView中没有元素,也应该允许下拉刷新
                ableToPull = true;
            }
        }

    Done

  • 相关阅读:
    ruby on rails爬坑(三):图片上传及显示
    js 实现图片实时预览
    Rails中的content_tag与concat用法,可以连接任意html元素
    rspec中的shared_examples与shared_context有什么不同
    RSpec shared examples with template methods
    How to Test Controller Concerns in Rails 4
    JMeter压力测试入门教程[图文]
    京东后台图片优化技巧
    程序猿,千万别说你不了解Docker!
    DIV+CSS:页脚永远保持在页面底部
  • 原文地址:https://www.cnblogs.com/xingyyy/p/4334703.html
Copyright © 2011-2022 走看看