学习之鸿蒙&Android学习

FrameLayout的点击击穿问题

2021-07-16  本文已影响0人  100个大西瓜

在一个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>
上一篇下一篇

猜你喜欢

热点阅读