线性布局OnClick Listener无法正常工作

时间:2016-09-06 07:25:14

标签: android android-layout android-linearlayout

嗨我有水平方向的LinearLayout有两个孩子如下

<LinearLayout
            android:id="@+id/clearAll"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_below="@id/parent"
            android:layout_marginBottom="0dp"
            android:layout_marginRight="16dp"
            android:gravity="center_vertical"
            android:orientation="horizontal">

            <ImageView
                android:layout_width="15dp"
                android:layout_height="15dp"
                android:layout_gravity="center_vertical"
                android:background="@drawable/clear_all_bg"
                android:padding="3dp"
                android:src="@drawable/ic_close_white" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:layout_weight="1"
                android:gravity="center"
                android:paddingLeft="5dp"
                android:text="Clear"
                android:textColor="@android:color/holo_red_light"
                android:textSize="@dimen/font_size_micro"
                android:textStyle="normal" />
        </LinearLayout>

在运行时,我为此类

设置了LinearLayout的OnClickListner
clearAll = (LinearLayout) findViewById(R.id.clearAll);
    clearAll.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Log.i(TAG, "clearAll Click");
        }
    });

我试过

android:duplicateParentState="true"

android:clickable="true"

但没有触发使用侦听器

1 个答案:

答案 0 :(得分:1)

  

可以点击textview或imageview

     

方法1:尝试将android:focusableInTouchMode =“false”带到textview和imageview

<LinearLayout
        android:id="@+id/clearAll"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_below="@id/parent"
        android:layout_marginBottom="0dp"
        android:layout_marginRight="16dp"
        android:gravity="center_vertical"
        android:orientation="horizontal">

        <ImageView
            android:layout_width="15dp"
            android:layout_height="15dp"
            android:layout_gravity="center_vertical"
            android:background="@drawable/clear_all_bg"
            android:padding="3dp"
            android:focusableInTouchMode="false"
            android:src="@drawable/ic_close_white" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_weight="1"
            android:gravity="center"
            android:paddingLeft="5dp"
            android:text="Clear"
            android:focusableInTouchMode="false"
            android:textColor="@android:color/holo_red_light"
            android:textSize="@dimen/font_size_micro"
            android:textStyle="normal" />
    </LinearLayout>
  

方法2:或者将id设置为图像视图和Textview并尝试此...

 textview.setEnabled(false);