我有一个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;
}
}
}
答案 0 :(得分:1)
是的,您必须将onClickListener添加到两者。那么该项目还有一个注册的监听器。
答案 1 :(得分:1)
将android:duplicateParentState="true"
设置为所有子项,这会将点击传播给所有子项。
答案 2 :(得分:0)
只需将android:duplicateParentState
添加到true
,这样就可以解决您的问题并将clickListner设置为仅限父级。