我正在开发一款Android应用。在我的应用程序中,我在布局视图中有一个按钮。布局视图设置单击侦听器。内部布局中的按钮也与单击侦听器绑定。但是当我在布局中点击按钮时,两个听众都无法正常工作。但是当我单击布局视图避免按钮时,布局视图的监听器正在工作。
例如,这是我的布局文件
<LinearLayout>
<LinearLayout
android:id="@+id/child_container"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:focusable="false"
android:focusableInTouchMode="false"
android:text="LIKE"
android:id="@+id/btn_click"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
这是我活动的onCreate事件的示例
childContainer.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//this is working
}
});
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//This is not working
}
});
如您所见,我将android:focusable="false"
和android:focusableInTouchMode="false"
设置为布局文件中的按钮。但单击按钮的监听器不起作用。我该如何解决这个问题?
答案 0 :(得分:1)
删除以下行:
android:focusable="false"
android:focusableInTouchMode="false"
来自docs:
用于控制视图是否可以获得焦点的布尔值。默认情况下 用户无法将焦点移动到视图;通过将此属性设置为true 视图可以成为焦点。
android:focusableInTouchMode="false"
:
控制是否的布尔值 在触摸模式下,视图可以获得焦点。如果对于视图是这样, 该视图在点击时可以获得焦点,并且可以保持焦点 单击另一个没有设置此属性的视图 真。
查看需要专注于调用点击侦听器。