【问题标题】:How to find the scope of data to be shown in ListView如何找到要在 ListView 中显示的数据范围
【发布时间】:2013-04-05 19:37:39
【问题描述】:

我有一个包含大量数据的列表。所以过滤文本变化有点慢。所以我想我为什么要一次过滤所有数据。我想过滤将在 ListView 中显示的有限数据。现在的问题是我怎么知道 ListView 什么时候会从特定索引中请求接下来的 20 条数据?

更多解释: 我有一个 ListView 名称列表、一个适配器、一个包含 20000 个数据的列表和一个小列表(已过滤)。我覆盖 getView 并提供过滤列表中的数据。

我想做什么?: 当 ListView 需要数据(发生滚动或新数据事件)时,在大列表中过滤或搜索,直到获得下一个 20 或 25 个数据,然后将它们设置在过滤后的列表中,并使用 getView 在 listView 中显示它们。那么我怎么知道 listView 什么时候需要下一个或上一个 20 个数据呢?

【问题讨论】:

    标签: android-listview android-cursoradapter


    【解决方案1】:

    您首先对所有数据进行排序,然后将排序后的数据传递给适配器并使用 ViewHolder 模式。不要在适配器中使用排序。适配器本身调用列表视图中的可见索引数据。 ViewHolder 链接: http://myandroidsolutions.blogspot.com/2012/07/android-listview-tutorial.html

    Faster loading ListView, faster than the Viewholder method

    Creating ViewHolders for ListViews with different item layouts

    如果你需要当前获取listview的可见范围,你可以设置OnScrollListener为listview,在这里你可以获取可见范围,你可以调用适配器的notifyDataChanges方法来更新listview。

    【讨论】:

      猜你喜欢
      • 2017-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多