我试图制作一个ViewPager垂直填充可用空间的布局。
基本上我在这里有一堆垂直堆叠的视图。
Checkbox
ViewPager
LinearLayout (which will contain the indicator)
Button
我想要顶部的复选框,底部的按钮,按钮上方的LinearLayout,以及ViewPager使用的中间留下的任何空间,但我似乎无法做到使它工作。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:background="@color/white"
android:gravity="top|center_horizontal"
android:padding="@dimen/activity_horizontal_margin"
android:layout_width="match_parent"
android:layout_height="match_parent">
<CheckBox
android:background="@drawable/login_button"
android:id="@+id/checkbox_friend_notify"
android:visibility="invisible"
android:checked="false"
android:textColor="@color/black"
android:text="@string/friend_notify"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<ViewPager
android:id="@+id/pager"
android:gravity="top"
android:layout_below="@+id/checkbox_friend_notify"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<LinearLayout
android:id="@+id/pager_indicator"
android:layout_centerHorizontal="true"
android:orientation="horizontal"
android:layout_below="@+id/pager"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Button
android:id="@+id/start_btn"
android:visibility="invisible"
android:text="@string/start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/white"
android:background="@drawable/login_button"
android:layout_below="@+id/pager_indicator"
android:layout_alignParentBottom="true" />
</RelativeLayout>
任何指针?
答案 0 :(得分:3)
如果您只需要垂直堆叠一组视图,请考虑更改垂直RelativeLayout
的{{1}}。然后,您可以保持所有子视图相同(摆脱属性上方/下方的所有布局),除了LinearLayout
ViewPager
和android:layout_height="0dp"
说明: layout_weight告诉LinearLayout如何分配剩余的空白区域,并通过给ViewPager一个权重(并且不给任何其他子节点任何权重值),你告诉LinearLayout,ViewPager想要所有剩余的空白区域。这仅适用于未定义高度的情况(因此layout_height = 0dp)。
您可以在LinearLayout guide上了解更多相关信息。