Disposición relativa de Android con pie de página pegajoso

Soy relativamente nuevo en el desarrollo de Android y estoy teniendo dificultades para armar una determinada interfaz. He mirado a través de muchas preguntas similares, pero ninguno de ellos me da la respuesta que estoy buscando.

Quiero crear una interfaz XML como la siguiente:

Introduzca aquí la descripción de la imagen

Quiero un LinearLayout que actúa como un pie de página pegajoso que contendrá dos botones. Esta parte se alineará siempre a la parte inferior y siempre será 60dp alto. El RelativeLayout sería entonces en la parte superior del pie de página, pero su altura debe escalar dependiendo del tamaño de la pantalla.

He intentado lo siguiente:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".DartboardActivity"> <RelativeLayout android:id="@+id/game_layout" android:layout_width="match_parent" android:layout_height="506dp" android:background="@drawable/background" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin"> <ImageView android:id="@+id/Dartboard" android:layout_width="match_parent" android:layout_height="match_parent" android:contentDescription="@string/desc_dartboard" android:src="@drawable/dartboard" /> <hhs.week3.dartboard.VerticalSeekBar android:id="@+id/seekBarVertical" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_gravity="bottom" android:thumb="@drawable/thumbhorizontal" android:layout_marginBottom="40dp" /> <SeekBar android:id="@+id/seekBarHorizontal" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:thumb="@drawable/thumbhorizontal" /> </RelativeLayout> <LinearLayout android:id="@+id/buttons" android:layout_width="match_parent" android:layout_height="60dp" android:background="#333"> <Button android:id="@+id/fire" style="@style/button" android:layout_width="0dp" android:layout_height="match_parent" android:layout_margin="5dp" android:text="@string/fire" /> <Button android:id="@+id/settings" style="@style/button" android:layout_width="0dp" android:layout_height="match_parent" android:layout_margin="5dp" android:text="@string/settings" /> </LinearLayout> </LinearLayout> 

Tengo que trabajar medio decentemente, pero me obliga a dar el RelativeLayout poco una altura fija, lo que se ve bien en mi teléfono, pero no en otros.

¿Cómo puedo abordar esto mejor?

4 Solutions collect form web for “Disposición relativa de Android con pie de página pegajoso”

Utilice el mecanismo de LinearLayout layout_weight para asignar todo el espacio restante a su RelativeLayout :

 <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <RelativeLayout android:layout_width="match_parent" android:layout_height="0px" android:layout_weight="1" ... /> <LinearLayout android:layout_width="match_parent" android:layout_height="60dp" ... /> </LinearLayout> 

Prueba el siguiente código

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".DartboardActivity" > <RelativeLayout android:id="@+id/game_layout" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_above="@+id/buttons" android:layout_alignParentTop="true" android:background="@drawable/ic_launcher" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" > </RelativeLayout> <LinearLayout android:id="@+id/buttons" android:layout_width="match_parent" android:layout_height="60dp" android:layout_alignParentBottom="true" android:background="#333" android:orientation="vertical" > </LinearLayout> </RelativeLayout> 

LinearLayout y lo reemplazé con RelativeLayout . Esto le permitirá establecer su stick LinearLayout en la parte inferior.

Pude conseguir el mismo resultado usando código bajo. Básicamente, la disposición principal es una disposición lineal y el primer elemento secundario es una vista de desplazamiento para poder comprimir su contenido cuando se muestra el teclado. También tenga en cuenta el uso del androide: layout_height = "0dp" y android: layout_weight = "1" utilizado con scrollview

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/wrap" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <ScrollView android:id="@+id/wrap2" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" > <LinearLayout android:id="@+id/LinearLayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" > </LinearLayout> </ScrollView> <FrameLayout android:id="@+id/buttonsPanel" android:layout_width="match_parent" android:layout_height="40dp" android:background="#333" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="action buttons" /> </FrameLayout> </LinearLayout> 

Prueba esto

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".DartboardActivity"> <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:orientation="vertical" android:layout_weight="1" android:background="@drawable/background" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin"> <ImageView android:id="@+id/Dartboard" android:layout_width="match_parent" android:layout_height="wrap_content" android:contentDescription="@string/desc_dartboard" android:src="@drawable/dartboard" android:adjustViewBounds="true"/> <hhs.week3.dartboard.VerticalSeekBar android:layout_marginTop="10dp" android:id="@+id/seekBarVertical" android:layout_width="wrap_content" android:layout_height="0dp" android:layout_weight="1" android:thumb="@drawable/thumbhorizontal"/> <SeekBar android:id="@+id/seekBarHorizontal" android:layout_width="match_parent" android:layout_marginTop="10dp" android:layout_height="wrap_content" android:thumb="@drawable/thumbhorizontal" /> </LinearLayout> <LinearLayout android:id="@+id/buttons" android:layout_width="match_parent" android:layout_height="60dp" android:background="#333333"> <Button android:id="@+id/fire" android:layout_width="0dp" android:layout_height="match_parent" android:layout_margin="5dp" android:layout_weight="1" android:text="@string/fire"/> <Button android:id="@+id/settings" android:layout_width="0dp" android:layout_height="match_parent" android:layout_margin="5dp" android:layout_weight="1" android:text="@string/settings"/> </LinearLayout> </LinearLayout> 
  • Android Lollipop Diseño del material Desbordamiento Menú Icon color
  • Android arregla el diseño con la altura en porcentaje
  • Haga referencia al id de una vista dentro de un diseño "include" en xml
  • Cómo agregar niños a childnodes mediante el documento jsoup
  • Cómo crear gradiente como Iphone Edittext cuadro en android
  • Manifiesto de Android que genera automáticamente permiso no válido
  • La vista de vídeo no es de pantalla completa en modo horizontal
  • No se puede agregar la dependencia de archivos XStream al proyecto de Android Studio
  • ¿Cómo funciona el atributo androide Xml android: onClick = "..." trabajo detrás de las escenas?
  • ¿Cómo lleno un ListView (en Android) con datos XML o JSON?
  • Unity3D y Android Studio Integration
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.