我有一个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>
答案 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">