【发布时间】:2012-06-15 16:22:47
【问题描述】:
从 API 级别 9 开始,在 ViewGroup 上有 android:filterTouchesWhenObscured 属性和对应的 setFilterTouchesWhenObscured 方法。例如,当一个视图设置了onClickListener 并且另一个视图遮盖了该视图(例如,覆盖面板、吐司或其他任何东西),那么触摸将不会传递给被遮盖的视图 - 在我的示例中,onClick 将不要被解雇。
但是,这在 API 级别 7 中不可用 - 对于我的项目,要求是 Android 2.1 及更高版本,这意味着我必须使用级别 7。
有没有简单的解决方法?在第 7 级中,此属性本质上被硬编码为 FALSE。结果,我得到了这个奇怪的行为:在一个视图上,我有一个按钮。按下时,另一个视图滑入到位,用按钮覆盖视图。在这个视图中,有它自己的按钮,但它与下方按钮的位置不匹配。因此,如果用户在下方按钮所在的位置触摸覆盖面板,则该按钮的 onClick 将再次被触发 - 这不是我想要/需要的。
在这种情况下,我能做些什么来防止onClick 被触发?谢谢。
【问题讨论】:
标签: android android-2.1-eclair obscured-view