行中带有可点击项目的 Android ListView 会导致继续滚动时出现问题

标签 android listview scroll onclick listadapter

几个小时以来,我一直在互联网上搜寻答案,但似乎找不到任何人能够解决这个问题。

我有一个使用自定义适配器的 ListView 。一行看起来像这样

alt text

列表由数组填充。一切都很好。

现在,我希望 ImageView 和 ToggleButton 对点击使用react,所以我在我的适配器中实现了 OnClickListener,将项目位置放在每个 View 的标记中,然后我将它们的 onclicklistener 设置为此。

效果很好,除了现在我不能使用 onListItemClick 来启动该项目的 Activity !好的,我说,我只是让在中间保存文本的 relativelayout 使用相同的 onclicklistener。效果很好。一切都是可点击的,生活是美好的。

除了!现在,当我滚动列表时,我无法通过再次滑动来“继续”滚动。这会导致滚动停止,我必须再次猛击才能让它重新开始。似乎 onclick-thingy 会导致 fling-motion 被解释为点击或其他东西(它不会触发 onClick 中的逻辑)。

我知道只要转到我的 HTC Hero 上的电话列表就可以做到这一点,它的布局和行为正是我想要从我的应用程序中获得的。这个应用程序甚至似乎有 onItemClickListener 工作。

那么我怎样才能确保列表不断滚动,并且仍然能够单击切换按钮、列表项和 ImageView ?我整天都被困在这个问题上,这让我很头疼:(

最佳答案

我回家前又快速搜索了一下,发现了这个:

How to fire onListItemClick in Listactivity with buttons in list?

CodeFusionMobile 提到将列表布局的 android:descendantFocusability 属性设置为 “blocksDescendants”,因此我尝试这样做。现在一切都按预期工作。滚动有效,onListitemClicked 有效,单击 ToggleButton 有效,单击 ImageView 有效。

只是为了说清楚...在父 RelativeLayout 中,就在 row.xml 的顶部,我添加了

android:descendantFocusability="blocksDescendants"

关于行中带有可点击项目的 Android ListView 会导致继续滚动时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4227424/

相关文章:

Android如何获取SNR(信噪比)

android - 将 CardView 移动到 NavigationView 下方

android - 在 API 版本 16 之前检测 SeekBar 中的拇指位置

android - 用另一个 fragment 膨胀类 fragment : Duplicate id , 标记 null 或父 ID 时出错

android - 单击项目时,自定义 ListView 不会在第二个 Activity 中显示图像

Javascript - 无限滚动循环

java - 如何将按钮放置在相对布局的中心?

android - 在 fragment 中使用时 ListView 与 TabLayout 和按钮重叠

scroll - javafx HTMLEditor 滚动 Pane 在空格键上滚动

javascript - IE11+ => 聚焦子 div 导致父滚动到顶部