studio programacion linearlayout elementos dinamico centrar botones boton amontonados alinear android layout alignment

programacion - Android: coloca el elemento debajo de otro elemento y alinea en la parte inferior de la pantalla



linearlayout android studio (2)

Así es como yo haría eso:

1 - Ponga el ImageView en la parte inferior
2 - Poner el GridView ARRIBA.

<!-- First anchor this View to the bottom --> <ImageView android:id="@+id/gs_bottom_logo" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:adjustViewBounds="true" android:maxWidth="200dp" android:paddingLeft="20dp" android:paddingRight="20dp" /> <!-- Then put this View ABOVE the ImageView --> <GridView android:id="@+id/gs_grid_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/gs_top_text_container" android:layout_above="@id/gs_bottom_logo" android:descendantFocusability="blocksDescendants" android:horizontalSpacing="2dp" android:verticalSpacing="2dp" android:numColumns="3" android:gravity="center" android:paddingBottom="10dp" android:paddingTop="10dp" />

De esta manera utilicé la relatividad de los elementos en un RelativeLayout

[EDITAR]

Sólo por diversión ... optimicé tu diseño completo.
Tenga en cuenta cómo se logra el mismo diseño utilizando menos diseños .

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:background="@drawable/background" > <TextView android:id="@+id/text_l" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:paddingBottom="30dp" /> <TextView android:id="@+id/text_t" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:paddingBottom="30dp" /> <!-- This container is (unfortunately) still needed, to make these two textViews horizontally centered... :( --> <RelativeLayout android:id="@+id/rlCentering" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/text_l" android:layout_centerHorizontal="true" android:paddingBottom="30dp" > <TextView android:id="@+id/text1" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/text2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@id/text1" /> </RelativeLayout> <!-- First, anchor this View to the bottom --> <ImageView android:id="@+id/gs_bottom_logo" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:adjustViewBounds="true" android:maxWidth="200dp" android:paddingLeft="20dp" android:paddingRight="20dp" /> <!-- Then put this View ABOVE the ImageView --> <GridView android:id="@+id/gs_grid_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/rlCentering" android:layout_above="@id/gs_bottom_logo" android:descendantFocusability="blocksDescendants" android:horizontalSpacing="2dp" android:verticalSpacing="2dp" android:numColumns="3" android:gravity="center" android:paddingBottom="10dp" android:paddingTop="10dp" /> </RelativeLayout>

Y esto es lo que obtuve en el Editor gráfico (puse algunas imágenes que tenía y algunos textos para identificar las vistas de texto):

Estoy tratando de definir un diseño en el que un ImageView esté alineado en la parte inferior de la pantalla y también debajo de un GridView , para evitar la superposición.

Sin embargo, esto hace que ImageView se establezca justo debajo de GridView pero no se alinee con la parte inferior de la pantalla.

¿Se puede resolver esto usando un tipo diferente de diseño?

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:background="@drawable/background" android:orientation="vertical"> <RelativeLayout android:id="@+id/gs_top_text_container" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:paddingBottom="30dp"> <RelativeLayout android:id="@+id/gs_top_sub_container" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:paddingBottom="30dp"> <TextView android:id="@+id/text_l" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true"/> <TextView android:id="@+id/text_t" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true"/> </RelativeLayout> <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/gs_top_sub_container" android:layout_centerHorizontal="true"> <TextView android:id="@+id/text1" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <TextView android:id="@+id/text2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@id/text1"/> </RelativeLayout> </RelativeLayout> <GridView android:id="@+id/gs_grid_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/gs_top_text_container" android:descendantFocusability="blocksDescendants" android:horizontalSpacing="2dp" android:verticalSpacing="2dp" android:numColumns="3" android:gravity="center" android:paddingBottom="10dp" android:paddingTop="10dp" /> <ImageView android:id="@+id/gs_bottom_logo" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/gs_grid_view" android:layout_alignParentBottom="true" android:adjustViewBounds="true" android:maxWidth="200dp" android:paddingLeft="20dp" android:paddingRight="20dp"/> </RelativeLayout>


Resuélvalo colocando ImageView en un RelativeLayout , configurando el elemento layout_below en el RelativeLayout y el elemento alignParentBottom de ImageView:

<RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@id/gs_grid_view"> <ImageView android:id="@+id/gs_bottom_logo" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:adjustViewBounds="true" android:maxWidth="200dp" android:paddingLeft="20dp" android:paddingRight="20dp"/> </RelativeLayout>