【问题标题】:Android ListView cannot be clicked after removed from a ViewGroup and added back?从 ViewGroup 中删除并重新添加后无法单击 Android ListView?
【发布时间】:2012-11-07 06:50:46
【问题描述】:

我有一个视图A,A中有一个ListView。

起初,我将 A 添加到 ViewGroup 中,一切正常。可以单击 ListView 中的项目,并且它会正确响应。

但是当我从 ViewGroup 中删除 A 并将另一个视图 B 添加到其中,然后删除 B 并将 A 添加回 ViewGroup 时,会发生奇怪的事情: 无法单击 ListView 中的项目。视图 A 中的所有按钮都可以正常工作,并且 ListView 可以上下滚动,只有项目不能点击。如果我刷新 ListView,或将其滚动超过一个屏幕,则可以再次单击这些项目。似乎只要重新生成项目,它就会再次起作用。有谁知道原因吗?

由于我在不同设备上进行了更多测试,这似乎只发生在 Android 4.0.x 上(在我的测试中它是 4.0.4)。 Android 2.x 和 4.1.x 好像没有这个问题。

【问题讨论】:

  • 你有没有使用adapter.notifyDataSetChanged();刷新ListView?

标签: android listview viewgroup onitemclicklistener


【解决方案1】:

重新添加 listView 后,尝试通知适配器一次,以便可以使用以下命令刷新它:

yourAdapter.notifyDataSetChanged();

【讨论】:

  • 是的,我试过了,但还是不行。另一个奇怪的事情是这发生得非常随机。有时经过所有这些步骤,它仍然可以正常工作,或者几秒钟后可以正常工作,但可能性很小,大多数情况下它不会工作。
  • 当我向下滚动列表时,它需要超过一个屏幕,在某些时候,所有项目将再次一起点击。
猜你喜欢
  • 1970-01-01
  • 2014-01-27
  • 2017-03-29
  • 1970-01-01
  • 2016-07-29
  • 2016-07-04
  • 1970-01-01
  • 2020-11-14
  • 2021-05-28
相关资源
最近更新 更多