如何在android中将一组buttonalignment屏幕的底部

在我的布局中,有四个部分分别是头部,可编辑控件,列表和一组button。 我想保持button底部的屏幕。 我在布局上做了太多的改变,迫使button到底。 但没有发生。 请提供说明,使我所需要的。 我也张贴布局

<?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="wrap_content"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <!-- heading for basic settings --> <TextView android:id="@+id/setup_macroheading" style="@style/txtHeading" /> <View android:layout_width="fill_parent" android:layout_height="20dp"/> <!-- macro name --> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingLeft="20dp" android:paddingRight="20dp" android:orientation="horizontal"> <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="left|center_vertical" android:layout_weight="1" android:textColor="@color/white" android:text="Macro Name"/> <EditText android:id="@+id/setup_macroname" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="right" android:layout_weight="1" android:maxLength="12" android:inputType="textCapCharacters" android:singleLine="true"/> </LinearLayout> <View android:layout_width="fill_parent" android:layout_height="20dp"/> <ListView android:id="@+id/lvMacroList" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <!-- Save & Cancel button --> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingLeft="20dp" android:paddingRight="20dp" android:layout_gravity="bottom" android:orientation="horizontal"> <Button android:id="@+id/setup_macroSavebtn" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="left" android:layout_weight="1" android:onClick="onSaveButtonClick" android:text="Save"/> <Button android:id="@+id/setup_macroCancelbtn" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="right" android:layout_weight="1" android:onClick="onCancelButtonClick" android:text="Cancel"/> </LinearLayout> </LinearLayout> </ScrollView> 

在这里输入图像说明

Solutions Collecting From Web of "如何在android中将一组buttonalignment屏幕的底部"

使LinearLayout的Parent包含button为相对,并将包含两个button的线性布局的属性设置为android:layout_alignParentBottom =“true”。 您也可以将线性布局的重力设置为底部。

尝试这个:

 <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <!-- heading for basic settings --> <TextView android:id="@+id/setup_macroheading" style="@style/txtHeading" /> <View android:layout_width="fill_parent" android:layout_height="20dp"/> <!-- macro name --> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingLeft="20dp" android:paddingRight="20dp" android:orientation="horizontal"> <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="left|center_vertical" android:layout_weight="1" android:textColor="@color/white" android:text="Macro Name"/> <EditText android:id="@+id/setup_macroname" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="right" android:layout_weight="1" android:maxLength="12" android:inputType="textCapCharacters" android:singleLine="true"/> </LinearLayout> <View android:layout_width="fill_parent" android:layout_height="20dp"/> <ListView android:id="@+id/lvMacroList" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearLayout> <!-- Save & Cancel button --> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_gravity="bottom" android:orientation="horizontal" android:paddingLeft="20dp" android:paddingRight="20dp" > <Button android:id="@+id/setup_macroSavebtn" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="left" android:layout_weight="1" android:onClick="onSaveButtonClick" android:text="Save"/> <Button android:id="@+id/setup_macroCancelbtn" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="right" android:layout_weight="1" android:onClick="onCancelButtonClick" android:text="Cancel"/> </LinearLayout> </RelativeLayout> 

以相对布局的主要父,并将android:layout_alignParentBottom="true"button的布局…

您必须使用父布局作为相对,然后使用属性android:layout_alignParentBottom =“true”来进行子布局。

相对布局是最好的方式来做到这一点,如Karan_Ranabuild议,但如果你不想使用相对布局尝试这一个:

 <LinearLayout android:layout_width="match_parent" android:layout_height="fill_parent" android:orientation="vertical"> <!-- heading for basic settings --> <TextView android:id="@+id/setup_macroheading" android:layout_width="match_parent" android:layout_height="wrap_content" /> <View android:layout_width="fill_parent" android:layout_height="20dp"/> <!-- macro name --> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingLeft="20dp" android:paddingRight="20dp" android:orientation="horizontal"> <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="left|center_vertical" android:layout_weight="1" android:textColor="@color/white" android:text="Macro Name"/> <EditText android:id="@+id/setup_macroname" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="right" android:layout_weight="1" android:maxLength="12" android:inputType="textCapCharacters" android:singleLine="true"/> </LinearLayout> <View android:layout_width="fill_parent" android:layout_height="20dp"/> <ListView android:id="@+id/lvMacroList" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </LinearLayout> </ScrollView> <!-- Save & Cancel button --> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingLeft="20dp" android:paddingRight="20dp" android:layout_weight="0" android:layout_gravity="bottom" android:orientation="horizontal"> <Button android:id="@+id/setup_macroSavebtn" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="left" android:layout_weight="1" android:onClick="onSaveButtonClick" android:text="Save"/> <Button android:id="@+id/setup_macroCancelbtn" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="right" android:layout_weight="1" android:onClick="onCancelButtonClick" android:text="Cancel"/> </LinearLayout> 

在这里,您需要使用LinearLayout作为父项,并将weightSum设置为它,并将weightSum相同的layout_weight应用于所需的布局。 你想在底部的布局(保存和取消)将layout_weight应用到0。

这效果很好!

尝试通过使相对布局作为父布局和android:layout_alignParentBottom =“true”到您的button布局

 <?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" > <!-- heading for basic settings --> <ScrollView android:layout_width="fill_parent" android:layout_height="fill_parent" > <RelativeLayout android:layout_width="fill_parent" android:layout_height="fill_parent" > <View android:layout_width="fill_parent" android:layout_height="20dp" /> <!-- macro name --> <LinearLayout android:id="@+id/llTop" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:paddingLeft="20dp" android:paddingRight="20dp" > <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="left|center_vertical" android:layout_weight="1" android:text="Macro Name" /> <EditText android:id="@+id/setup_macroname" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="right" android:layout_weight="1" android:inputType="textCapCharacters" android:maxLength="12" android:singleLine="true" /> </LinearLayout> <!-- Save & Cancel button --> </RelativeLayout> </ScrollView> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:orientation="horizontal" android:paddingLeft="20dp" android:paddingRight="20dp" > <Button android:id="@+id/setup_macroSavebtn" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="left" android:layout_weight="1" android:onClick="onSaveButtonClick" android:text="Save" /> <Button android:id="@+id/setup_macroCancelbtn" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_gravity="right" android:layout_weight="1" android:onClick="onCancelButtonClick" android:text="Cancel" /> </LinearLayout> 

尝试这个。

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/RelativeLayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignParentLeft="true" android:layout_alignParentBottom="true" > <Button android:id="@+id/button1" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:layout_marginRight="2dp" android:text="Modify" /> <Button android:id="@+id/button2" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:layout_marginRight="2dp" android:text="Cancle" /> </LinearLayout> </RelativeLayout> 

为底部的显示button。