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>
- Resolvamos el error "Error al encontrar estilo 'mapViewstyle' en tema actual"
- Cómo aumentar el espacio entre los elementos en linearlayout en android?
- WRAP_CONTENT no funciona después de agregar vistas dinámicamente
- Creación de un botón personalizado con dos líneas de texto, cada una con una fuente diferente
- Cómo configurar TimePicker show con formato 24h
- Problema con la alineación mediante TextInputLayout y Spinner
- Android: Vista inferior de navegación - cambia el icono del elemento seleccionado
- Desplazamiento de una Galería con botones
- Ver inflación y vistas personalizadas
- Android: cómo cambiar layout_x, layout_y en un AbsoluteLayout dinámicamente?
- Cómo crear un imageButton circular en android?
- Obtener mensaje de error "El recurso no es público"
- Android: dither = "true" no dither, lo que está mal?
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.
- Cómo convertir la siguiente cadena en objeto de fecha o de calendario en Java?
- Extensión de MediaController para android