RelativeLayout上的setOnClickListener与ImageButton和TextField

时间:2013-06-19 15:05:34

标签: android listener relativelayout imagebutton onclicklistener

我有一个RelativeLayout,有了它,我有一个ImageButton和一个TextField。

当我将点击监听器设置为此RelativeLayout时,如果我触摸文本,它可以正常工作,但按钮不会触发它。

如果我将on Click侦听器添加到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;
         }
      }
   }

3 个答案:

答案 0 :(得分:1)

是的,您必须将onClickListener添加到两者。那么该项目还有一个注册的监听器。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

只需将android:duplicateParentState添加到true,这样就可以解决您的问题并将clickListner设置为仅限父级。