我使用了半透明背景的Framelayout层来创建覆盖图层。但是这个覆盖层不能阻止触摸事件与其下方的视图进行交互。如何创建一个可以阻止所有触摸事件的覆盖层呢?
我使用了半透明背景的Framelayout层来创建覆盖图层。但是这个覆盖层不能阻止触摸事件与其下方的视图进行交互。如何创建一个可以阻止所有触摸事件的覆盖层呢?
android:clickable="true"
android:clickable="true"
来阻止下面其他视图的触摸事件。<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/progress_overlay"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:alpha="0.4"
android:animateLayoutChanges="true"
android:background="@android:color/black"
android:visibility="gone"
android:clickable="true">
<ProgressBar
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:indeterminate="true"/>
</FrameLayout>
要改进Blesson Jose的回答,如果您正在使用View来阻止触摸,则需要设置android:focusable="true"
和android:clickable="true"
。