Как сделать статическую кнопку под ScrollView?

У меня есть следующий XML. Я пытаюсь сделать статическую кнопку под своим ScrollView. Я пытался установить вес, установить кнопку ниже scrollview и т. Д. Может ли кто-нибудь дать мне способ, чтобы я мог заставить кнопку оставаться внизу, а 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="wrap_content"> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/menuButtons" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center_horizontal"> <Button xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/newItems" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="New Items" /> <Button xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/categories" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Categories" /> </LinearLayout> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/contentScroller" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@id/menuButtons"> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:stretchColumns="1" > <TableRow android:layout_marginTop="5dip" android:layout_marginBottom="5dip" > <ImageView android:src="@drawable/thumbdrive"/>" <TextView android:layout_column="1" android:text="Thumb Drives" android:padding="3dip" android:textSize="20dip"/> </TableRow> <TableRow android:layout_marginTop="5dip" android:layout_marginBottom="5dip"> <ImageView android:src="@drawable/laptop"/> <TextView android:layout_column="1" android:text="Laptops" android:padding="3dip" android:textSize="20dip"/> </TableRow> <TableRow android:layout_marginTop="5dip" android:layout_marginBottom="5dip"> <ImageView android:src="@drawable/sdcard"/> <TextView android:layout_column="1" android:text="SD Cards" android:padding="3dip" android:textSize="20dip"/> </TableRow> <TableRow android:layout_marginTop="5dip" android:layout_marginBottom="5dip"> <TextView android:layout_column="1" android:text="Other" android:padding="3dip" android:textSize="20dip"/> </TableRow> <TableRow android:layout_marginTop="5dip" android:layout_marginBottom="5dip"> <TextView android:layout_column="1" android:text="Other" android:padding="3dip" android:textSize="20dip"/> </TableRow> <TableRow android:layout_marginTop="5dip" android:layout_marginBottom="5dip"> <TextView android:layout_column="1" android:text="Other" android:padding="3dip" android:textSize="20dip"/> </TableRow> <TableRow android:layout_marginTop="5dip" android:layout_marginBottom="5dip"> <TextView android:layout_column="1" android:text="Other" android:padding="3dip" android:textSize="20dip"/> </TableRow> <TableRow android:layout_marginTop="5dip" android:layout_marginBottom="5dip"> <TextView android:layout_column="1" android:text="Other" android:padding="3dip" android:textSize="20dip"/> </TableRow> <TableRow android:layout_marginTop="5dip" android:layout_marginBottom="5dip"> <TextView android:layout_column="1" android:text="Other" android:padding="3dip" android:textSize="20dip"/> </TableRow> </TableLayout> </LinearLayout> </ScrollView> <Button android:id="@+id/submit" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:text="Submit New Item" android:layout_below="@id/contentScroller"/> </RelativeLayout> 

Solutions Collecting From Web of "Как сделать статическую кнопку под ScrollView?"

Используйте RelativeLayout . Начните с Button внизу и расположите ScrollView над Button .

Относительная компоновка – Android-разработчики

 <RelativeLayout (...)> <LinearLayout android:id="@+id/ll1" android:layout_alignParentTop="true" (...)/> <Button android:id="@+id/button" android:layout_alignParentBottom="true" (...)/> <ScrollView android:layout_above="@id/button" android:layout_below="@id/ll1" (...)/> </RelativeLayout> 

Что-то вроде этого. Написано с моей головы, поэтому могут возникнуть некоторые ошибки.

Я знаю, что это очень поздно, но есть лучшее решение. Проблема с подходом RelativeLayout и выравнивание кнопок в нижней части относительной компоновки состоит в том, что она приводит к тому, что высота макета по существу будет такой же, как fill_parent (или match_parent).

Правильный способ сделать это:

 <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent"> <ScrollView android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:fillViewport="true"> <!-- Your Scrollview content goes here --> </ScrollView> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:gravity="center_horizontal" android:text="Button Text Goes Here" /> </LinearLayout> 

Ключ должен установить высоту в 0, а затем дать ему вес макета 1 … Из того, что я могу сказать, прочитав процесс макетирования макета, придав ему размер 0, а вес макета заставляет его удерживать По размеру представления до тех пор, пока он не обработает все дочерние элементы в макете … Затем он появляется на втором проходе и способен правильно определять прокрутку.

Поместите кнопку в relativeLayout и выровняйте ее до нижней части родителя:

 <RelativeLayout android:layout_alignParentBottom="true" android:layout_width="fill_parent" android:orientation="horizontal" android:layout_height="50px"> <Button android:id="@+id/submit" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:text="Submit New Item" android:layout_below="@id/contentScroller"/> </RelativeLayout>