android - 过度绘制布局允许通过 LinearLayout 进行触摸
Posted
技术标签:
【中文标题】android - 过度绘制布局允许通过 LinearLayout 进行触摸【英文标题】:android - overdraw layout allows touch through LinearLayout 【发布时间】:2012-04-25 02:59:37 【问题描述】:在下面的 UI 中,我有这个覆盖整个屏幕的下拉菜单。 LinearLayout 是透明的,并允许其下方的控件可点击或可触摸。基本上,我可以滚动此 LinearLayout 下方的列表以及单击控件。如何禁用它?
见附件。
谢谢
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/rlExtNavbar"
android:orientation="vertical"
android:layout_
android:layout_
android:gravity="fill_vertical"
android:layout_gravity="fill_vertical"
android:background="@color/transparent" xmlns:tools="http://schemas.android.com/tools" tools:ignore="Overdraw">
<RelativeLayout
android:id="@+id/expandedNavbarLayout"
android:orientation="vertical"
android:layout_
android:layout_ >
</RelativeLayout>
<LinearLayout
android:id="@+id/transparentLayout"
android:orientation="vertical"
android:layout_
android:layout_
android:layout_below="@id/expandedNavbarLayout"
android:focusableInTouchMode="false"
android:focusable="false"
android:background="@color/fulltransparent">
</LinearLayout>
</RelativeLayout>
【问题讨论】:
How to disable behind view click event Framelayout的可能重复 【参考方案1】:只需在 XML 中为 LinearLayout 设置 android:clickable="true"
属性将阻止点击通过 -- 不需要点击监听器。
【讨论】:
唯一的问题是,按下状态会传播到可点击设置为 true 的视图的所有子控件。例如当您单击背景时,按钮会单击动画。 同时添加 android:focusable="true" 来移除 lint 警告【参考方案2】:为线性布局分配了一次点击并解决了它。老实说,它不应该像这样开始工作,但它解决了问题。点击为空。
【讨论】:
【参考方案3】:对我有用的是将 LinearLayout 放在 xml 中的内部 RelativeLayout 之前。
【讨论】:
以上是关于android - 过度绘制布局允许通过 LinearLayout 进行触摸的主要内容,如果未能解决你的问题,请参考以下文章