2016-09-06 87 views
0

嗨,我有LinearLayout中與水平方向有兩個兒童如下線性佈局的OnClick監聽器不工作

<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> 

在運行時我已經設置OnClickListner爲LinearLayout中這樣

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" 

and

android:clickable="true" 

,但沒有使用偵聽器未觸發

+0

嘗試增加填充,然後再嘗試 – kgandroid

+1

你把代碼onClickListener中的onCreate()或其他方法? –

+0

嘗試在Imgeview和Textview上點擊事件,因爲你的LinearLayout覆蓋了這兩個,所以你沒有得到點擊事件。 –

回答

1

可以點擊的TextView或imageview的

方法1:設法採取機器人: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); 
+1

*「它可能是點擊textview或imageview」* ...爲什麼?不應該將父ViewGroup作爲點擊事件的決定實體嗎? – Shaishav