LinearLayout:是否保证唯一的match_parent项目将占用所有可用空间?

时间:2016-06-24 13:39:24

标签: android android-layout android-linearlayout

在布局中使一个元素占用所有剩余的可用空间总是有点麻烦。最后我记得,match_parentlayout_weight属性是必需的。但今天我做了这个,它的确有效,我。即第一个项目被包裹,第二个项目跨越所有剩余空间:

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        >

        <android.support.design.widget.AppBarLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

        </android.support.design.widget.AppBarLayout>

        <TextView
            android:id="@+id/view"
            android:background="#FF80FF00"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>
</LinearLayout>

问题在于它是否得到保证(按设计),或者它是否只是巧合,它在我的特殊情况下按照我希望的方式运作(即不能依赖)。

1 个答案:

答案 0 :(得分:1)

让一个View占用LinearLayout中剩余空间的保证方法是将layout_weight值设置为1,同时保留其他子视图&#39;权重属性为空。

在下面的xml示例中,第二个子视图将占用顶视图和底视图之间的所有剩余空间。

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


    <View
        android:layout_width="match_parent"
        android:layout_height="50dp"
        />

    <View
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        />

    <View
        android:layout_width="match_parent"
        android:layout_height="50dp"
        />

</LinearLayout>
&#13;
&#13;
&#13;