在布局中使一个元素占用所有剩余的可用空间总是有点麻烦。最后我记得,match_parent
和layout_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>
问题在于它是否得到保证(按设计),或者它是否只是巧合,它在我的特殊情况下按照我希望的方式运作(即不能依赖)。
答案 0 :(得分:1)
让一个View占用LinearLayout中剩余空间的保证方法是将layout_weight值设置为1,同时保留其他子视图&#39;权重属性为空。
在下面的xml示例中,第二个子视图将占用顶视图和底视图之间的所有剩余空间。
<?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;