Java 是否有更好的方法为整个布局设置onClickListner?
我有一个Java 是否有更好的方法为整个布局设置onClickListner?,java,android,onclicklistener,Java,Android,Onclicklistener,我有一个LinearLayout,我想对用户单击LinearLayout做出响应。所以我写: <LinearLayout Some Attributes onClick="layoutOnClick"> </LinearLayout> 但是,如果单击LinerLayout上的视图,则不会调用layoutOnClick方法。这意味着我需要向LinearLayout中的每个视图添加相同的onClick属性。有更好的方法吗?在布局中设计视图时,布局将完全
LinearLayout
,我想对用户单击LinearLayout
做出响应。所以我写:
<LinearLayout
Some Attributes
onClick="layoutOnClick">
</LinearLayout>
但是,如果单击
LinerLayout
上的视图,则不会调用layoutOnClick
方法。这意味着我需要向LinearLayout
中的每个视图添加相同的onClick属性。有更好的方法吗?在布局中设计视图时,布局将完全被视图[按钮/编辑文本等]占据。因此,无法准确单击布局。最好为每个视图或单个视图添加侦听器。否则,如果您能够准确地单击布局,那么显然它应该可以工作。当您在布局中设计视图时,布局将完全被视图[按钮/编辑文本等]占据。因此,无法准确单击布局。最好为每个视图或单个视图添加侦听器。否则,如果您能够准确地单击布局,那么显然它应该可以工作。是的,您当然可以将事件侦听器添加到单个LinearLayout元素
为线性布局指定id属性
<LinearLayout
android:id="@+id/llSendMoney"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal">
在onclick事件中
@Override
public void onClick(View v)
{
if(v.getId()== R.id.llSendMoney) {
//do whatever you want here in the onclick event
}
}
我的意思是,如果你不能更准确地点击视图,那么你可能会考虑你的UX的设计改变。或者你可能试图解决一个有更清晰解决方案的问题,比如在线性布局中使用片段。顺便说一下,我很想看看您的布局文件,以便更清楚地了解您的目标。是的,您当然可以将事件侦听器添加到单个LinearLayout元素中 为线性布局指定id属性
<LinearLayout
android:id="@+id/llSendMoney"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal">
在onclick事件中
@Override
public void onClick(View v)
{
if(v.getId()== R.id.llSendMoney) {
//do whatever you want here in the onclick event
}
}
我的意思是,如果你不能更准确地点击视图,那么你可能会考虑你的UX的设计改变。或者你可能试图解决一个有更清晰解决方案的问题,比如在线性布局中使用片段。顺便说一句,我很想看看您的布局文件,以便更清楚地了解您的目标。将
可点击的属性添加到您的线性布局
,并将其设置为true
编辑:
如果这不起作用,答案会更复杂。您可以创建一个自定义的视图组
,该视图组扩展了线性布局
,并覆盖onInterceptTouchEvent()
和onTouchEvent()
。在onInterceptTouchEvent()
中返回true
,并将单击逻辑添加到onTouchEvent()
文档更详细。将可点击的属性添加到线性布局中
,并将其设置为真
编辑:
如果这不起作用,答案会更复杂。您可以创建一个自定义的视图组
,该视图组扩展了线性布局
,并覆盖onInterceptTouchEvent()
和onTouchEvent()
。在onInterceptTouchEvent()
中返回true
,并将单击逻辑添加到onTouchEvent()
文档更详细。你说的“完全被占用”是什么意思?如果子视图仅占布局的一部分,该怎么办?您所说的“完全占用”是什么意思?如果子视图只占布局的一部分,该怎么办?这不是问题的解决方案。他在设置onClick侦听器方面没有问题,但是当他按下布局的子视图时,该侦听器不会激活。@Dchaser88我的布局有一些文本视图scool。那么为什么不让您的子视图像下面这样不可链接,textview.setOnClickListener(null);view.setOnLongClickListener(空);textview.setLongClickable(false);并使外线布局可点击,这样它会工作是吗?这不是问题的解决方案。他在设置onClick侦听器方面没有问题,但是当他按下布局的子视图时,该侦听器不会激活。@Dchaser88我的布局有一些文本视图scool。那么为什么不让您的子视图像下面这样不可链接,textview.setOnClickListener(null);view.setOnLongClickListener(空);textview.setLongClickable(false);让外线布局可以点击,这样就可以了是吗?