机器人的模拟:filterTouchesWhenObscured低于9 API级(Analogue

2019-09-18 04:12发布

与API级别9起,还有android:filterTouchesWhenObscured属性和相应的setFilterTouchesWhenObscured方法上ViewGroup 。 例如,当一个视图具有onClickListener设置和另一种观点掩盖了视图(例如覆盖面板,烤面包,或其他任何东西),那么倒是不会被传递到模糊的观点-在我的例子, onClick不会被解雇。

然而,这是不是在API 7级可用 - 并为我的项目要求的是Android 2.1及以上,这意味着我有7级工作。

有没有解决这一个简单的方法? 在7级,这个属性基本上是硬编码为FALSE。 其结果是,我得到这个奇怪的现象:在一个视图中,我有一个按钮。 当按下时,另一视图滑入到位,覆盖与该按钮的图。 从这个角度来看,有它自己的按钮,但它并不符合下面的按钮的位置。 因此,如果用户触摸在按钮的下方是位置重叠面板,该onClick该按钮被再次发射-不是我想要/需要什么。

我能做些什么来防止onClick射击在这种情况下? 谢谢。

Answer 1:

事实证明,有没有做这件事的方式。 在Android中之前API 9级,有解决问题方法有两种:

  1. 从底层的观点删除监听器(在我的情况,我有一打,我就需要删除,然后重新设置叠加将不可见再之后); 要么

  2. 添加一个空onClickListener(即拦截了click事件,做它没有)对整个覆盖-这是我处理它在我的案件的方式。

有趣的是,在遮蔽视图接收的行为, click事件被报告为Android的早期版本中的错误,但错误是封闭的,表明它是不是一个错误,而是预期的功能(我不明白为什么有人会想那功能虽然)。 我想在android:filterTouchesWhenObscured在9级加属性安抚所有的不开心开发商那里:)



文章来源: Analogue of android:filterTouchesWhenObscured for API level below 9