ImageView OnClickListener无法使用layout_gravity底部

时间:2015-06-22 20:34:52

标签: android layout onclick imageview gravity

我有以下布局包含ImageView imageView2,我希望它是完全可点击的。

      <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_marginTop="15dp" >

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dp"
            android:layout_marginStart="20dp"
            android:layout_marginEnd="20dp"
            android:layout_weight="1"
            android:src="@drawable/image1"
            android:adjustViewBounds="true" />

        <ImageView
            android:id="@+id/imageView2"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dp"
            android:src="@drawable/image2"
            android:layout_weight="1"
            android:adjustViewBounds="true"
            android:clickable="true"
            android:focusable="true"
            android:layout_gravity="bottom"/>

    </LinearLayout>

我将OnClickListener设置为imageView2。我希望整个图像可以点击。这很好用。但是,每当我添加android:layout_gravity =“bottom”时,只有图像的顶部边框保持可点击状态。但是,我希望整个图像可以点击。

如何使用layout_gravity =“bottom”完全点击imageView2?

我也试过将引力移到父母那里

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="15dp"
        android:orientation="horizontal"
        android:gravity="bottom">

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dp"
            android:layout_marginEnd="20dp"
            android:layout_marginStart="20dp"
            android:layout_weight="1"
            android:adjustViewBounds="true"
            android:src="@drawable/image1" />

        <ImageView
            android:id="@+id/imageView2"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dp"
            android:layout_weight="1"
            android:adjustViewBounds="true"
            android:clickable="true"
            android:focusable="true"
            android:src="@drawable/image2" />

    </LinearLayout>

这也不起作用。

1 个答案:

答案 0 :(得分:0)

我不确定为什么整个ImageView都无法点击。似乎应该只是工作。但也许您可以尝试将ImageView包装在FrameLayout中:

JK->L

或者,(正如我在评论中提到的)尝试使用背景而不是src加载图像,然后删除<FrameLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:clickable="true" android:focusable="true" > <ImageView android:id="@+id/imageView2" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="10dp" android:src="@drawable/image2" android:adjustViewBounds="true" android:layout_gravity="bottom"/> </FrameLayout> 属性。我猜这可能是导致奇怪的OnClick行为的原因:

adjustViewBounds