我在布局 xml 中有以下两个 LinearLayout。
我在布局项目 layout_edit 和 layout_create 上都添加了 onClickListener
<LinearLayout
android:id="@+id/layout_edit"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:background="@color/white"
android:gravity="center"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:visibility="visible" >
<ImageView
android:id="@+id/imgView_edit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_edit" >
</ImageView>
</LinearLayout>
<LinearLayout
android:id="@+id/layout_create"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_toLeftOf="@id/layout_edit"
android:background="@color/white"
android:gravity="center"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:visibility="visible" >
<ImageView
android:id="@+id/imgView_create"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_create" >
</ImageView>
</LinearLayout>
我添加了以下代码:
LinearLayout linearLayoutEdit = (LinearLayout) getActivity().findViewById(R.id.layout_edit);
mLinearLayoutEdit.setOnClickListener(this);
LinearLayout linearLayoutCreate = (LinearLayout) getActivity().findViewById(R.id.layout_create);
linearLayoutCreate.setOnClickListener(this);
在特定场景下,添加以下代码:
linearLayoutEdit.setVisibility(View.INVISIBLE);
现在,linearLayoutCreate 仍然可见,但 linearLayoutCreate onClick 不起作用。
当 linearLayoutEdit 和 linearLayoutCreate 都是 VISIBLE 时,它们的 onClick 都可以正常工作。
似乎由于linearLayoutCreate位于linearLayoutEdit的左侧,并且使用代码使linearLayoutEdit变得不可见,因此linearLayoutCreate的可点击操作虽然可见,但不起作用。
当 linearLayoutEdit 不可见时如何使 linearLayoutCreate 可点击的任何提示。
我发现的一种解决方案是使用具有已经可用 id 的代码再次重新创建布局,但是还有其他可用的解决方案吗?
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.layout_edit:
break;
case R.id.layout_create:
// not navigating within this condition only when layout_edit is INVISIBLE, but //navigating when both layout_edit & layout_create are VISIBLE
break;
default:
break;
}
}