4

我的布局 XML 如下:

<LinearLayout 
        android:id="@+id/leftBtnWrapper"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:paddingRight="25dp"
        android:clickable="true"
        android:orientation="horizontal"
        android:gravity="center_vertical"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true">

        <LinearLayout 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:orientation="vertical"
            android:gravity="center"
            android:duplicateParentState="true">

        <ImageView 
            android:id="@+id/leftImageBtn"
            android:layout_width="wrap_content"         
            android:layout_height="wrap_content"
            android:background="@drawable/btn_navbar"
            android:layout_gravity="center_vertical"
            android:padding="0dp"
            android:clickable="true"
            android:duplicateParentState="true"/>

        </LinearLayout>

         <View 
            android:layout_width="1.5dp"
            android:layout_height="match_parent"
            android:background="@drawable/ver_separator"
            android:layout_marginLeft="1dip"
            android:duplicateParentState="true"/>

我想在点击时触发一个功能leftBtnWrapper。但是当我触摸 ImageView 的任何部分时leftImageBtn,它不会触发我的功能。任何线索我错过了什么?

编辑::

通过在左上角采用 framelayout 并应用 frameLayout 的 onClick 来解决。布局如下::

<LinearLayout
        android:id="@+id/leftBtnWrapper"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:clickable="true"
        android:gravity="center_vertical"
        android:orientation="horizontal" >

            <ImageView
                android:id="@+id/leftImageBtn"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:background="@drawable/btn_navbar"
                android:clickable="true"
                android:duplicateParentState="true"
                android:layout_margin="8dp" />


        <View
            android:layout_width="1.5dp"
            android:layout_height="match_parent"
            android:background="@drawable/ver_separator"
            android:duplicateParentState="true" />
    </LinearLayout>

    <FrameLayout
        android:id="@+id/leftBtnLayer"
        android:layout_width="70dp"
        android:layout_height="match_parent"
        android:layout_alignParentLeft="true"
        android:background="@android:color/transparent"
        android:clickable="true" >
    </FrameLayout>
4

1 回答 1

3

如果你想完全点击 leftBtnWrapper 来触发一个函数,为什么不把以下内容添加到你的 leftBtnWrapper

android:clickable="true"
android:onClick="functionName"

并删除

android:clickable="true"

从所有子布局中。

于 2013-01-09T07:36:27.170 回答