• 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

  • 相关阅读:
    使用PHPMYADMIN添加新用户和数据库
    phpMyadmin用户权限中英对照
    Asp生成xml乱码解放方法
    SQL Server 错误日志
    安装VS2005 SP1时失败(错误 1718。文件被数字签名策略拒绝)的解决办法!
    CKEditor 3 JavaScript API Documentation
    CKEditor在.NET中的应用
    IIS 添加网站显示错误消息 “无更多可用的内存以更新安全信息” 解决方法
    jQuery 操作Cookie
    JavaScript/HTML格式化
  • 原文地址:https://www.cnblogs.com/xingyyy/p/4334703.html
Copyright © 2020-2023  润新知