1

我有一个RelativeLayout,我有一个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;
         }
      }
   }
4

3 回答 3

1

设置android:duplicateParentState="true"为所有孩子,这会将点击传播到所有孩子。

于 2013-06-19T15:28:29.517 回答
1

是的,您必须将 onClickListener 添加到两者。那么该项目将如何拥有注册的侦听器。

于 2013-06-19T15:07:48.543 回答
0

只需添加android:duplicateParentState到此即可true解决您的问题并将 clickListner 设置为仅父级。

于 2014-11-09T06:45:06.863 回答