【问题标题】:reseting a ListView after the adapter's data was changed在适配器的数据更改后重置 ListView
【发布时间】:2010-11-21 16:32:39
【问题描述】:

我有一个列表视图,可以根据内部状态显示项目(它 有项目和“查看”项目)。我需要能够在 两种状态,我使用一个简单的按钮来更改适配器的 状态,然后适配器调用 notifyDatasetChanged()。 我的数据确实更新了,但是我面临两个问题:

  1. 如果在之前的模式中列表被部分滚动,它会停留 在我更改数据集后处于那种状态(如果我下降了一半 我也会在新数据集中下降一半,这不是 我想要的行为,但我找不到手动滚动列表的方法 定位 0. 有什么想法吗? (setSelected 并不完全是一个解决方案,因为我不想让任何选择保持触摸模式)
  2. 在我的列表视图中,每个项目都有一个从 网,所以它是使用我的网络管理器带来的,我发送 仅当我第一次在此屏幕中或如果 滚动状态为空闲,我不想开始从 getView 方法,因为如果我扔屏幕它可能会加载很多 不必要的图像。但是,当调用 notifyDatasetChanged() 时 不调用滚动侦听器方法。我通过使用解决了这个问题 notifyDatasetInvalidated 即使我的数据不为空,是否有 解决这个问题的更好方法?

【问题讨论】:

    标签: android listview reset


    【解决方案1】:

    关于#1,这是我的错误,显然我没有通读文档,如果我当前处于触摸模式,则不会进行选择,因此工作由 setSelectedPosition() 完成。

    关于#2,我仍然不确定 notifyDatasetInvalidated 是确保调用 onScroll 方法的解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-11
      • 2013-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-05
      相关资源
      最近更新 更多