当另一个 View 或 Fragment 位于 ListView 上方时,如何防止 ListView 接收点击?
Posted
技术标签:
【中文标题】当另一个 View 或 Fragment 位于 ListView 上方时,如何防止 ListView 接收点击?【英文标题】:How do I prevent a ListView from receiving clicks when another View or Fragment is over it? 【发布时间】:2021-12-13 23:05:05 【问题描述】:我有一个显示一些数据的 ListView。也可以单击行。 我在屏幕底部还有一个自定义片段,它一直“悬停”在 ListView 上。我希望这个 Fragment 也能接收点击事件,这样我就可以在它被点击时做一些事情。
问题是我不知道如何做到这一点,并且 ListView 最终获得了点击,即使 Fragment 覆盖了该特定行。
基本上,我想确保当 ListView 顶部有一个 Fragment(甚至另一个 View)时,该 Fragment 在我单击它时注册单击,而不是 ListView。 我该怎么做?
【问题讨论】:
请发布相关代码,以便我们看到您在做什么 【参考方案1】:如果另一个 View 或 Fragment 位于其上方,您可以通过将布局根部的 android:clickable
属性设置为 true
来防止点击到达,该布局的根部显示在其他可点击的内容之上。
Fragment 中显示在其他内容之上的扩展布局也是如此,只需在扩展布局的根上将 android:clickable
设置为 true。
android:clickable="true"
【讨论】:
对于复制和粘贴团队,即我,应该是 android:clickable="true"。顺便说一句,完美的解决方案 - 为我修好了!以上是关于当另一个 View 或 Fragment 位于 ListView 上方时,如何防止 ListView 接收点击?的主要内容,如果未能解决你的问题,请参考以下文章
当 getView() 为 null 时,即 onCreateView() 之前或 onDestroyView() 之后,无法访问 Fragment View 的 LifecycleOwner [重复
android.view.InflateException: Binary XML file line #33: Error inflating class fragment
FragmentTabHost切换Fragment时避免UI重新加载