Cómo alinear un conjunto de botón a la parte inferior de la pantalla en android

En mi diseño hay cuatro secciones, respectivamente, un encabezado, un control editable, una lista y un conjunto de botones. Quiero mantener los botones en la parte inferior de la pantalla. Hago demasiados cambios en el diseño para forzar los botones a la parte inferior. Pero nada pasó. Por favor, proporcione instrucciones para hacer lo que necesitaba. Estoy publicando el diseño también

<?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> 

Introduzca aquí la descripción de la imagen

Haga que el padre del LinearLayout contenga el botón como relativo y establezca la propiedad del diseño lineal que contenga dos botones como android: layout_alignParentBottom = "true". También puede ajustar la gravedad del diseño lineal en la parte inferior.

Prueba esto:

 <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> 

Tome el padre principal como disposición relativa y déle android:layout_alignParentBottom="true" a la disposición de los botones …

Tienes que usar el diseño padre como relativo y luego usar la propiedad android: layout_alignParentBottom = "true" para sublayout.

El diseño relativo es la mejor manera de hacerlo como sugirió Karan_Rana, pero si no quieres utilizar el diseño relativo, prueba este:

 <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> 

En este caso, debe utilizar LinearLayout como padre y establecer weightSum en él y aplicar el mismo layout_weight al diseño que desee en pantalla completa. Y el diseño que desea en la parte inferior (guardar y cancelar) aplicar layout_weight a 0.

¡Esto funciona bien!

Pruebe este código haciendo el diseño relativo como diseño de los padres y android: layout_alignParentBottom = "true" en el diseño del botón

 <?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> 

prueba esto.

 <?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> 

Para el botón de la exhibición en la parte inferior.

  • Use caracteres especiales en strings.xml para cargar en WebView
  • Recyclerview con fondo de desplazamiento
  • ¿Cómo aumentar el tamaño de un elemento centrado en un recyvlerview?
  • Ancho de TextView siguiente curva de ImageView
  • Combinación de pestañas de deslizamiento con un encabezado pegajoso
  • Teclado personalizado: manejo del tipo de entradaTipo
  • Pase el evento de desplazamiento a otra vista
  • ¿Cómo hacer la disposición de una imagen y el texto a la izquierda y debajo de él?
  • No se puede eliminar la vista de superposición
  • Formato correcto para android: gravedad en attrs.xml?
  • Cómo incrustar código HTML en la aplicación de Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.