如何在android listview中滚动?

时间:2010-06-01 13:12:55

标签: android listview layout

我在一个活动中有一个带有listview的android-app。如果我这样说的话,列表视图有三种数据状态。

  1. 没有从inet加载的数据 - >只有一个虚拟项目可见,表示正在加载数据;
  2. 数据已加载并显示在列表中;
  3. 单击一个listitem,现在显示此listitem的更多信息(因此它的高度会增加)。
  4. 在每次状态更改(1 - > 2,2 - > 3)时,我在此ListAdapater上调用notifyDataSetChanged()。 这会导致列表视图向下滚动到最后一项。这在第一次转换中是丑陋的,在第二次转换中更难看,因为点击的列表项目现在已经失焦。

    正如我所看到的,这发生在谷歌g1与Android 1.6。使用相同的sdk进行htc触摸可以达到预期的效果(我会尝试使用更多设备来解决这个问题)。

    为避免这种情况,我尝试读取getScrollY()并将此值设置回来。但是这会返回0.我在其他问题中已经在stackoverflow上找到此返回值的原因。

    有没有人见过这个问题?列表视图为什么滚动到最后一项?有人提到listview会跟踪滚动位置。但似乎在我的情况下并不存在。

    或许我正在调用错误的刷新方法? notifyDataSetChanged是正确的吗?

1 个答案:

答案 0 :(得分:0)

我相信你想要:

listview.setTranscriptMode(ListView.TRANSCRIPT_MODE_DISABLED);