【问题标题】:How to detect if ListView has enough items that a scrollbar is displayed如何检测 ListView 是否有足够的项目来显示滚动条
【发布时间】:2014-05-11 21:13:24
【问题描述】:

我想知道其他人使用了什么技术来检测 ListView 中是否有足够的项目来显示滚动条。例如,最初我的 ListView 是空的,但基于用户交互,ListView 可以开始添加项目。我通读了一个类似的问题here,但在让它工作时遇到了一些麻烦,我想知道人们是否使用了其他实现。我没有看到可以检查的 XML 属性,但也许我遗漏了一些东西。

感谢您对此事的任何帮助。

【问题讨论】:

  • 我不太确定您在寻找什么,但您能否更具体地说明您想要实现的目标?您是否希望滚动条仅出现在一定数量的项目之后?
  • @Brian,不完全是。在以编程方式将足够的项目添加到我的 ListView 导致滚动条显示之后,我想向我的用户展示一个快速 Toast。

标签: android listview scrollbar


【解决方案1】:

这不是解决您问题的完美解决方案,但它可以让您松一口气。

您可以通过使用滚动侦听器和 onscroll 方法中的一个条件来查看列表视图是否超出屏幕。

  listView.setOnScrollListener(new OnScrollListener() {

                @Override
                public void onScrollStateChanged(AbsListView view, int scrollState) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void onScroll(AbsListView view, int firstVisibleItem,
                        int visibleItemCount, int totalItemCount) {list.getLastVisiblePosition());
                    if ((dataList.size() - 1) > list.getLastVisiblePosition()) {
                        Log.d("learn", "page full");
                    } else
                        Log.d("learn", "page not full");
                }
            });

onScroll 方法将在您设置没有任何滚动事件的列表视图时第一次被调用。

【讨论】:

  • 这真的可以用来确定当有足够的项目添加到 ListView 导致它显示滚动条的时刻吗?我没有尝试该代码,但它看起来更像是它会确定页面最初未满,但它实际上不会注意到页面已满,直到有人与滚动条交互。在我可以尝试之前,我暂时将其标记为未答复。
  • 我希望找到一些我错过的 XML 属性或方法,它们只会告诉我 ScrollView 或 ListView 当前是否显示滚动条,但似乎还有更多步骤那
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-16
  • 1970-01-01
  • 1970-01-01
  • 2013-12-25
  • 2023-04-05
  • 1970-01-01
相关资源
最近更新 更多