我有一个视图,其可见性设置为大部分时间(视图A)和其下方的另一个视图始终可见(视图b),有时视图A视图设置为从某些条件可见,发生这种情况时,View B将不可见(主要是因为View A在出现时阻止了它)。我想知道系统是否有办法在视图B出现时将视图B重新定位到视图A下方。
<RelativeLayout
android:id="@+id/require_info"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/payment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:visibility="gone">
<View
android:layout_width="fill_parent"
android:layout_height="0.2dp"
android:layout_marginTop="10dp"
android:background="#c0c0c0" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:text="@string/quantity_label"
android:textSize="10sp"
android:textStyle="bold" />
</LinearLayout>
<LinearLayout
android:id="@+id/contact_info"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/payment"
android:orientation="vertical">
<TextView
android:id="@+id/contact_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Contact Information"
android:textColor="#90CAF9"
android:textSize="15sp" />
</LinearLayout>
</RelativeLayout>
答案 0 :(得分:0)
如果您View A
上的View B
高于LinearLayout
,当您将A和B都设置为可见时,带有重绘的布局,您会看到{{1}上面View A
。确保您的View B
有LinearLayout
orientation
。
答案 1 :(得分:0)
您实际上需要将第一个LinearLayout的高度更改为&#34; wrap_content&#34;它目前设置为&#34; match_parent&#34;。因此,如果您使View A可见,它将获取屏幕上的整个可用空间,并且您的View B永远不会出现。
答案 2 :(得分:0)
线性布局适合您的设计。以下示例显示了您如何做到这一点。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/linearLayout"
android:orientation="vertical"
android:visibility="visible"
android:layout_weight="0.5"
>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Button1"
android:id="@+id/button" />
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/linearLayout2"
android:visibility="visible"
android:layout_weight="0.5"
>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Button2"
android:id="@+id/button2" />
</LinearLayout>
</LinearLayout>
在上面,当您尝试制作可见的第一个线性布局并隐藏第二个线性布局时,可见的布局将采用全屏,反之亦然。如果将两个布局都设置为可见,则布局可以正确显示(第一个布局及其下面的第二个布局)。