0

我必须将视图 A 放置在视图 B 的顶部,并将 B 放置在视图 C 的顶部。

在可见性更改(消失)或元素删除时必须表现得像堆栈。如果我删除 B,A 必须在 C 的顶部,如果我删除 C,B 到父级的底部,A 保持在 B 之上,如果我删除 B 和 C,A 到父级的底部。

在此处输入图像描述

目前我有这个属性:

C:

android:id="@+id/C"
android:layout_alignParentBottom="true"

乙:

android:id="@+id/B"
android:layout_above="@id/C"
android:layout_alignWithParentIfMissing="true"

A:

android:layout_above="@id/B"
android:layout_alignWithParentIfMissing="true"

但我需要类似“如果有 B,则在其上方对齐,如果没有,则在 C 的顶部对齐,如果不对齐父级的底部”。

有没有办法在没有嵌套布局的 XML 中解决这个问题?

4

1 回答 1

1

What you can do, instead of using RelativeLayout, is to use a LinearLayout with a fourth view with a layout_weight set to 1.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <View
        android:id="@+id/spacer"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:background="#000000" />

    <View
        android:id="@+id/A"
        android:layout_width="fill_parent"
        android:layout_height="30dip"
        android:background="#FF0000" />

    <View
        android:id="@+id/B"
        android:layout_width="fill_parent"
        android:layout_height="30dip"
        android:background="#00FF00" />

    <View
        android:id="@+id/C"
        android:layout_width="fill_parent"
        android:layout_height="30dip"
        android:background="#0000FF" />

</LinearLayout>
于 2012-04-24T15:34:43.807 回答