点击问题时,一个布局是不可见的&另一个布局是可见的

时间:2012-11-28 18:22:13

标签: android android-layout android-widget

我在布局xml中有以下两个LinearLayout。

我在布局项layout_edit&上添加了onClickListener。 layout_create

<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&amp; linearLayoutCreate是可见的,他们的onClick都工作正常。

似乎因为linearLayoutCreate位于linearLayoutEdit&amp;的左侧。使用代码使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;
        }
    }

1 个答案:

答案 0 :(得分:0)

  

现在,linearLayoutCreate仍然可见,但是LinearLayoutCreate onClick不起作用。

听起来您已经设置了两个布局,以便在点击时隐藏一个布局linearLayoutEdit,更改您的onClick()方法以隐藏布局点击了:

@Override
public void onClick(View v) {
    v.setVisibility(View.INVISIBLE);
}