【问题标题】:Is there any way to find out how many items in a list view are showing?有没有办法找出列表视图中显示了多少项目?
【发布时间】:2011-05-13 07:45:39
【问题描述】:

我想对用户无需滚动即可看到的列表视图的项目执行特定操作。有没有办法得到显示的项目数量,或者有没有其他方法可以解决这个问题?

【问题讨论】:

  • 检查this question
  • 这和我想要的非常相似,除了某些原因,getLastVisiblePosition 总是返回-1。你知道为什么会这样吗?
  • 什么时候调用getLastVisiblePosition()方法?
  • 在我填充了我的 ListView 之后。这是 onCreate() 中的最后一件事
  • Mh 我认为这可能还早,因为此时 Android 还没有完成所有 View 元素的排列。所以 Android 还不能告诉你最后一个可见的位置是什么。我认为您必须在 onResume() 完成后的某个时间调用该方法。

标签: android listview scroll visible


【解决方案1】:

我不知道您的确切要求是什么,但要知道当前可见的无列表项

ListView.getFirstVisiblePosition();     
ListView.getLastVisiblePosition();

【讨论】:

  • 这正是我所需要的。谢谢。
  • 你知道为什么 getLastVisiblePosition 会返回 -1 吗?
  • 如果 ListView 中没有项目
  • 我有 10 个硬编码,显示后我调用 getLastVisiblePosition,但它仍然返回 -1
  • 在调用最后一项之前检查 getCount() 方法是否返回正确的值也在这里发布您的 xml
【解决方案2】:

您可以在下面找到listview 的数量:

int count = listview.getChildCount();

【讨论】:

    【解决方案3】:

    您的ListView 可以实现onScrollListener,您可以在其中覆盖其onScroll 方法。该方法接收以下参数:

    public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount){}

    或许你可以从这里开始。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-30
      • 1970-01-01
      • 2019-03-13
      • 2017-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多