在FrameLayout外部查看的视图不会拦截触摸事件

时间:2016-06-09 10:06:25

标签: android

我在屏幕左下方有一个相机拍摄的最后一张照片的缩略图。 在它的左上角,我有一个X按钮来删除相机拍摄的最后一张图像。

当我尝试按下该按钮时,没有任何反应,除非我按下它的右下角,一个仍然在原来的范围内的那个:

这是我的布局

<RelativeLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:clipChildren="false">

            <FrameLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerInParent="true"
                android:layout_gravity="center"
                android:clipChildren="false">

                <ImageView
                    android:id="@+id/gallery"
                    android:layout_width="48dp"
                    android:layout_height="48dp"
                    android:contentDescription="@string/open_gallery"/>

                <ImageButton
                    android:id="@+id/deleteLastImage"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="top|left"
                    android:layout_marginLeft="-22dp"
                    android:layout_marginTop="-22dp"
                    android:contentDescription="@string/delete_last_image"/>
            </FrameLayout>
        </RelativeLayout>

以下是它的外观:

enter image description here

如何解决此问题?

1 个答案:

答案 0 :(得分:0)

所以我通过不使用负边距来处理它,但将ImageView放在FrameLayout之外就像这样:

<RelativeLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:clipChildren="false">

            <ImageView
                android:id="@+id/gallery"
                android:layout_width="48dp"
                android:layout_height="48dp"
                android:layout_centerInParent="true"
                android:layout_gravity="center"
                android:contentDescription="@string/open_gallery"/>

            <ImageButton
                android:id="@+id/deleteLastImage"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="top|left"
                android:layout_marginLeft="10dp"
                android:layout_marginTop="10dp"
                android:contentDescription="@string/delete_last_image"
                android:visibility="invisible"/>
        </RelativeLayout>