1

我有一個RelativeLayout,並有它我有一個ImageButton和一個TextField。關於RelativeLayout的setOnClickListener與ImageButton和TextField

當我將點擊監聽器設置爲這個RelativeLayout時,如果我觸摸文本,但它沒有觸發它,它會正常工作。

如果我將點擊偵聽器添加到ImageButton,它也可以工作。 我真的需要這樣做嗎?或者我錯過了什麼?這似乎是一個浪費,必須這樣做,特別是當我有這種情況在我的應用程序很多。

在此先感謝

m_view.findViewById(R.id.menu_relativeLayout_home).setOnClickListener(this); 
m_view.findViewById(R.id.menu_imageButton_home).setOnClickListener(this); 

    @Override 
    public void onClick(View p_view) 
    { 
     switch (p_view.getId()) 
     { 
     case R.id.....: 
     { 
      ... 
      break; 
     } 
     case R.id....: 
     { 
      ... 
      break; 
     } 
     case R.id.menu_imageButton_home: 
     case R.id.menu_relativeLayout_home: 
     { 
      GoHome(); 
      break; 
     } 
     } 
    } 
+0

嘗試把可點擊的false在ImageButton的xml中 – Vaibs

+0

通過設置android:duplicateParentState屬性給所有的孩子解決了你的問題?? – Uttam

+0

任何人都知道更好的解決方案,而不是爲相對佈局和ImageButton添加2個偵聽器? – Raghu

回答

1

是你要的onClickListener添加到這兩個。那麼該物品還會有什麼註冊監聽者。

+0

嗯,但我從來沒有在TextField上設置它,但點擊文本的作品。或者是我剛纔碰巧通過文字? – Christopher

+0

可能是這種情況。 – TronicZomB

1

給所有孩子設置android:duplicateParentState="true",這會將點擊傳播給所有孩子。

0

只需添加android:duplicateParentStatetrue這將解決你的問題,並設置clickListner只有父母。

相關問題