代码之家  ›  专栏  ›  技术社区  ›  CoDe

检查是否显示了可展开列表第一项

  •  0
  • CoDe  · 技术社区  · 11 年前

    我正在编写一个代码,需要检查Expandable List的第一项是否可见。

    为此,我向 AbsListView.OnScrollListener.onScroll(..firstItem, visibleItemCount..) 但如果列表扩展,它就不起作用了。

    此外,是否有任何方法可以确定第一个项目是否完全可见。

    这里有什么建议!

    1 回复  |  直到 11 年前
        1
  •  0
  •   CoDe    11 年前

    以下解决方案对我有效:

    public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
    
            if(expListView.getChildAt(firstVisibleItem) != null) { // 1
                int top = expListView.getChildAt(firstVisibleItem).getTop();
    
                if(top >= 0) { // 2
                    if(this.firstVisibleItem != firstVisibleItem) { // 3
                        if(view != null){
                            this.firstVisibleItem = firstVisibleItem;
                        }
                    }
                }
            }
        }
    
    1. 确保可见视图项不为空。
    2. 选中向第一个显示项目移动。i、 e.对于我正在检查的列表中的第一项,您可以删除此选项。
    3. 放弃同一项目请求:这对于执行非常重要,否则您将得到多次调用。
    推荐文章