在一个FrameLayout中,包含2个布局,都是占满父布局的,如下
<FrameLayout
android:id="@+id/center_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="14.47dp">
<SplitView
android:id="@+id/split_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone" />
<include
layout="@layout/video_view_type_1_1"
android:visibility="visible" />
</FrameLayout>
通过切换2个View的显示与隐藏,但是但第一个View1显示时,第二个view2没有隐藏时,虽然view2设置了透明度但是依然出现了响应点击事件:点击穿透;
解决的方式是:交换2个view在FrameLayout中的声明顺序,并对原来view1的 设置了android:clickable="true"
android:focusable="true"这个2个熟悉,即可以修改实现当view1显示时,view2不会响应点击事件。
修改之后的xml文件如下:
<FrameLayout
android:id="@+id/center_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="14.47dp">
<include
layout="@layout/video_view_type_1_1"
android:visibility="visible" />
<SplitView
android:clickable="true"
android:focusable="true"
android:id="@+id/split_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone" />
</FrameLayout>
网友评论