可点击元素的 ListView 中的 Android LongClick

Posted

技术标签:

【中文标题】可点击元素的 ListView 中的 Android LongClick【英文标题】:Android LongClick in a ListView of Clickable Elements 【发布时间】:2014-10-03 03:35:48 【问题描述】:

如果我有一个包含 ListView 的片段,其中每一行都是一系列可点击元素(比如 3 个按钮),填充了行上的所有可用空间,我可以对整行进行长点击回调吗?

我希望用户能够通过快速单击来单击三个元素中的任何一个,但长按应该选择整个行/条目。

我曾尝试将 ListView 与 setOnItemLongClickListener 连接起来,同时在布局中的各个元素上设置 android:longClickable,但我从来没有看到长按时回调被击中。

这可行吗?我是否需要让每个元素监听长按并以某种方式将其推回 ListView?

【问题讨论】:

这个相关问题可能会提供答案见***.com/questions/8846707/… 类似,但没有回答我的问题。我已经按照他们那里所说的去做了。 我认为您必须应用单个按钮长按而不是整行,因为您的孩子已经实现了单击侦听器,所以尝试实现单个按钮长按侦听器。 【参考方案1】:

由于这三个元素(按钮)占据了整个空间,所以很难为该行设置长按监听...

如果它们没有任何长点击事件,那么最好为这些元素而不是行设置一个相同的长点击监听器。

谢谢

【讨论】:

我的预期是长按会“通过”,但我猜情况并非如此。 我最终为行中的每个元素添加了长点击侦听器,并且只在每个元素上返回“false”,这确实导致它们传递到父片段。【参考方案2】:

将 longclicklistener 放在列表视图上,当执行该操作时,一些布尔值使 true 并在您的 3elements clicklisteners 中检查它是否为 false,而不是其他命令。

【讨论】:

以上是关于可点击元素的 ListView 中的 Android LongClick的主要内容,如果未能解决你的问题,请参考以下文章

android小部件内ListView中的多个可点击项目

ListView 中的 Kotlin 可点击按钮

无法使我的 ListView 可选择,按下该元素不会突出显示

Flutter - 如何访问 ListView.builder 中的一个元素?

Android - ListView 中的延迟点击

如何创建可点击的 Listview 并转到新页面