Buttonbar不会粘到屏幕的底部

我试图把我创build的button栏放在每个屏幕的底部。 我成功的第一个屏幕相当简单。

现在我试图把其他的屏幕,但它似乎不能坚持到屏幕的底部。 当我在hiearchyviewer看,它看起来像RelativeLayout包裹araound我的布局和button栏,不填充整个屏幕,但其高度设置为填充父项。

任何人都可以通过指出我要出错的地方来帮助我吗?

这是我使用的XML:

<?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> <RelativeLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> <TableLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="5pt" android:id="@+id/table" android:stretchColumns="1"> <TableRow> <TextView android:text="@string/Arbeiderbediende" android:id="@+id/txtArbeiderBediende" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </TableRow> <TableRow android:gravity="center"> <RadioGroup android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:id="@+id/group1"> <RadioButton style="@style/RadioButton" android:layout_width="wrap_content" android:id="@+id/rbArbeider" android:text="@string/Arbeider" android:layout_height="wrap_content" android:paddingLeft="18pt" /> <RadioButton style="@style/RadioButton" android:layout_width="wrap_content" android:id="@+id/rbBediende" android:text="@string/Bediende" android:layout_height="wrap_content" android:layout_marginLeft="20pt" android:paddingLeft="18pt" /> </RadioGroup> </TableRow> <TableRow android:gravity="center" android:paddingTop="5dip"> <TextView android:text="@string/OverzichtFuncties" android:id="@+id/txtFuncties" android:layout_width="0dip" android:layout_weight="1" android:layout_height="wrap_content" /> <Spinner android:layout_height="wrap_content" style="Spinner" android:layout_width="0dip" android:layout_weight="2" android:id="@+id/cmbFuncties" /> </TableRow> <TableRow android:gravity="center" android:paddingTop="5dip"> <TextView android:text="@string/Regio" android:id="@+id/txtRegio" android:layout_width="0dip" android:layout_weight="1" android:layout_height="wrap_content" /> <Spinner android:layout_height="wrap_content" android:layout_width="0dip" android:layout_weight="2" android:id="@+id/cmbRegio" /> </TableRow> <TableRow android:gravity="center" android:paddingTop="5dip"> <TextView android:text="@string/Opleiding" android:id="@+id/txtOpleidingsniveau" android:layout_width="0dip" android:layout_weight="1" android:layout_height="wrap_content" /> <Spinner android:layout_height="wrap_content" android:layout_width="0dip" android:layout_weight="2" android:id="@+id/cmbOpleidingsniveau" /> </TableRow> <Button android:text="@string/VindJobButton" android:id="@+id/btnFindJob" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="10dip" /> </TableLayout> <stage.accent.Toolbar android:layout_width="fill_parent" android:layout_height="70dip" android:layout_alignParentBottom="true" android:layout_below="@+id/table" /> </RelativeLayout> 

这是我取得的成果和我想得到的结果

在这里输入图像说明在这里输入图像说明

Solutions Collecting From Web of "Buttonbar不会粘到屏幕的底部"

如果你想让你的button栏始终在屏幕的底部可见,而不是滚动内容,你可能想要切换你的RelativeLayoutScrollView标签,并将你的button栏作为你的RelativeLayout的第一个孩子, ScrollView成为第二个:

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> <stage.accent.Toolbar android:id="id/buttonBar" android:layout_width="fill_parent" android:layout_height="70dip" android:layout_alignParentBottom="true" /> <ScrollView android:layout_above="@+id/buttonBar" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TableLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="5pt" android:id="@+id/table" android:stretchColumns="1"> <TableRow> <TextView android:text="@string/Arbeiderbediende" android:id="@+id/txtArbeiderBediende" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </TableRow> <TableRow android:gravity="center"> <RadioGroup android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:id="@+id/group1"> <RadioButton style="@style/RadioButton" android:layout_width="wrap_content" android:id="@+id/rbArbeider" android:text="@string/Arbeider" android:layout_height="wrap_content" android:paddingLeft="18pt" /> <RadioButton style="@style/RadioButton" android:layout_width="wrap_content" android:id="@+id/rbBediende" android:text="@string/Bediende" android:layout_height="wrap_content" android:layout_marginLeft="20pt" android:paddingLeft="18pt" /> </RadioGroup> </TableRow> <TableRow android:gravity="center" android:paddingTop="5dip"> <TextView android:text="@string/OverzichtFuncties" android:id="@+id/txtFuncties" android:layout_width="0dip" android:layout_weight="1" android:layout_height="wrap_content" /> <Spinner android:layout_height="wrap_content" style="Spinner" android:layout_width="0dip" android:layout_weight="2" android:id="@+id/cmbFuncties" /> </TableRow> <TableRow android:gravity="center" android:paddingTop="5dip"> <TextView android:text="@string/Regio" android:id="@+id/txtRegio" android:layout_width="0dip" android:layout_weight="1" android:layout_height="wrap_content" /> <Spinner android:layout_height="wrap_content" android:layout_width="0dip" android:layout_weight="2" android:id="@+id/cmbRegio" /> </TableRow> <TableRow android:gravity="center" android:paddingTop="5dip"> <TextView android:text="@string/Opleiding" android:id="@+id/txtOpleidingsniveau" android:layout_width="0dip" android:layout_weight="1" android:layout_height="wrap_content" /> <Spinner android:layout_height="wrap_content" android:layout_width="0dip" android:layout_weight="2" android:id="@+id/cmbOpleidingsniveau" /> </TableRow> <Button android:text="@string/VindJobButton" android:id="@+id/btnFindJob" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="10dip" /> </TableLayout> </ScrollView> </RelativeLayout> 

这样你就可以达到你想要的:

肖像景观

button栏将始终在屏幕的底部。

通过滚动内容,您也可以看到它的最后一点,它不会隐藏在button栏后面:

景观2

我仍然build议不使用ScrollView这里是一个例子,你可以如何显示底部的ButtonBar

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content"> <RelativeLayout android:id="@+id/headerlayout" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" > <Button android:id="@+id/amap_back_btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:text="Back"> </Button> <TextView android:id="@+id/amap_txt" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="" android:layout_centerVertical="true" android:layout_centerHorizontal="true"> </TextView> <ImageButton android:id="@+id/amap_action_btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/icon_menu_action" android:layout_alignParentTop="true" android:layout_alignParentRight="true"> </ImageButton> </RelativeLayout> //What ever widgets you wants to add <LinearLayout android:id="@+id/bottomlayout" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:orientation="horizontal" > <ImageButton android:id="@+id/map_refresh_btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/icon_refresh" android:gravity="center" > </ImageButton> <Button android:id="@+id/map_log_btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Log" android:gravity="center"> </Button> <Button android:id="@+id/map_map_btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Map" android:gravity="center" > </Button> </LinearLayout> </RelativeLayout> 

这就是最强大的解决scheme。

如果你发现它有用,不要忘记标记为答案。

请在滚动视图上方选取一个主要的线性布局,并在结束滚动视图后,设置底部的横条。

这也是我的build议。 LinearLayout是主视图。 在里面

  • 另一个LinearLayout(layout_height = 0dp和layout_weight = 1) * ll_container *
  • 和你的tabbar

* ll_container *地方

  • 带有tablelayout的scrollview(layout_height = 0dp和layout_weight = 1)
  • 和button

可能是为了解释。 在layout_height = 0dp和layout_weight = 1的情况下,放置TabBar后放置完整的空闲位置,然后放置button

UPD

 <?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"> <LinearLayout android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="1" android:orientation="vertical"> <ScrollView android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="1"> <TableLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="5pt" android:id="@+id/table" android:stretchColumns="1"> <TableRow> <TextView android:text="@string/Arbeiderbediende" android:id="@+id/txtArbeiderBediende" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </TableRow> <TableRow android:gravity="center"> <RadioGroup android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:id="@+id/group1"> <RadioButton style="@style/RadioButton" android:layout_width="wrap_content" android:id="@+id/rbArbeider" android:text="@string/Arbeider" android:layout_height="wrap_content" android:paddingLeft="18pt" /> <RadioButton style="@style/RadioButton" android:layout_width="wrap_content" android:id="@+id/rbBediende" android:text="@string/Bediende" android:layout_height="wrap_content" android:layout_marginLeft="20pt" android:paddingLeft="18pt" /> </RadioGroup> </TableRow> <TableRow android:gravity="center" android:paddingTop="5dip"> <TextView android:text="@string/OverzichtFuncties" android:id="@+id/txtFuncties" android:layout_width="0dip" android:layout_weight="1" android:layout_height="wrap_content" /> <Spinner android:layout_height="wrap_content" style="Spinner" android:layout_width="0dip" android:layout_weight="2" android:id="@+id/cmbFuncties" /> </TableRow> <TableRow android:gravity="center" android:paddingTop="5dip"> <TextView android:text="@string/Regio" android:id="@+id/txtRegio" android:layout_width="0dip" android:layout_weight="1" android:layout_height="wrap_content" /> <Spinner android:layout_height="wrap_content" android:layout_width="0dip" android:layout_weight="2" android:id="@+id/cmbRegio" /> </TableRow> <TableRow android:gravity="center" android:paddingTop="5dip"> <TextView android:text="@string/Opleiding" android:id="@+id/txtOpleidingsniveau" android:layout_width="0dip" android:layout_weight="1" android:layout_height="wrap_content" /> <Spinner android:layout_height="wrap_content" android:layout_width="0dip" android:layout_weight="2" android:id="@+id/cmbOpleidingsniveau" /> </TableRow> </TableLayout> </ScrollView> <Button android:text="@string/VindJobButton" android:id="@+id/btnFindJob" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="10dip" /> </LinearLayout> <stage.accent.Toolbar android:layout_width="fill_parent" android:layout_height="70dip" android:layout_alignParentBottom="true" android:layout_below="@+id/table" /> </LinearLayout>