android - 无法使用默认view.gone查看setvisibility view.invisible

时间:2013-08-14 22:21:36

标签: android android-layout view

我有一个view.gone默认的视图。在运行应用程序时,我使用setvisiblity view.visibile将其恢复,但没有任何反应。

<LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:id="@+id/pnl_actions">

    <ImageView
            android:layout_width="48dip"
            android:layout_height="48dip"
            android:id="@+id/btn_quick_reply"
            android:layout_alignParentRight="false"
            android:layout_centerVertical="true"
            android:src="@drawable/edit_quick_reply_blue"
            android:background="#eee"
            android:layout_toLeftOf="@+id/btn_edit"
            android:visibility="invisible"/>

    <ImageView
            android:layout_width="48dip"
            android:layout_height="48dip"
            android:id="@+id/btn_edit"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:src="@drawable/edit_blue"
            android:background="#eee"
            android:visibility="gone"/>
</LinearLayout>

2 个答案:

答案 0 :(得分:0)

这可能是因为您的父母layout中有

        android:layout_width="wrap_content"

将此更改为

        android:layout_width="match_parent"

或固定width,我不推荐。或者将visibility的{​​{1}}更改为View而不是xml中的invisible

首次绘制gone时,该空间不适用于您设置的属性。根据我的建议,该空间仍将由另一个layout使用。如果您想要更改View的{​​{1}},也可以通过编程方式更改父width的{​​{1}},但在这种情况下这可能会更多,并且可能不必要。

答案 1 :(得分:0)

问题出在这里

<LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:id="@+id/pnl_actions">

添加方向并确保有足够的空间让项目显示,它应该如下所示

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:orientation="horizontal"
        android:id="@+id/pnl_actions">