Android layout_width & layout_height, cómo funciona?

Estoy tratando de crear una interfaz, donde dos o más botones se mostrará al usuario, si se hace clic en un botón, algunos diseños se le mostrará. Estoy usando el SlidingDrawer para este propósito.

Bueno, estoy confundido por layout_width & layout_height propiedades .

Si establezco las propiedades como a continuación sólo se muestra la "Manilla 1" en la pantalla.

android:layout_width="fill_parent" android:layout_height="wrap_content" 

Honestamente diciendo, no tengo suficiente conocimiento sobre estas dos propiedades. ¿Puede alguien compartir su conocimiento sobre ellos?

Main.xml:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <SlidingDrawer android:id="@+id/slidingDrawer1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:handle="@+id/handle1" android:content="@+id/content1"> <Button android:text="Handle 1" android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/handle1"></Button> <LinearLayout android:id="@+id/content1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" android:gravity="center" android:background="#FF444444"> <Button android:text="Handle 1 Item 1" android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/item1"></Button> </LinearLayout> </SlidingDrawer> <SlidingDrawer android:id="@+id/slidingDrawer2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:handle="@+id/handle2" android:content="@+id/content2"> <Button android:text="Handle 2" android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/handle2"></Button> <LinearLayout android:id="@+id/content2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" android:gravity="center" android:background="#FF444444"> <Button android:text="Handle 2 Item 1" android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/item2"></Button> </LinearLayout> </SlidingDrawer> </LinearLayout> 

Las propiedades layout_width y layout_height de una vista están destinadas a ser utilizadas por su contenedor principal. Algunos contenedores ignoran uno o ambos de estos; La mayoría los honra. Necesita consultar la documentación del contenedor (en su caso, SlidingDrawer) para entender cómo se utilizarán los valores.

No muestra el archivo main.xml completo, por lo que es difícil decir exactamente lo que está mal. También le ayudaría si usted publicó una imagen de lo que está mal.

EDITAR

Después de ver su disposición completa, pienso que el problema básico aquí es que usted está utilizando un LinearLayout para contener el SlidingDrawers. Como los documentos para SlidingDrawer nota, que necesitan estar en un FrameLayout o un RelativeLayout (en realidad, cualquier contenedor que permite varias vistas para sentarse uno encima del otro).

Otra posibilidad es que el segundo SlidingDrawer se coloque directamente debajo del primero. Intente cambiar el tamaño del segundo botón (por ejemplo, haga que el texto sea más largo) y vea si se asoma a ambos lados del botón 1.

Fill_parent = match_parent, y significa que toma el ancho o la altura (que nunca la propiedad está siendo especificada como) del contenedor "padre"

Wrap_content significa que la altura o anchura toma la altura o el ancho del "niño"

Desea usar pesos en lugar de usar match_parent o wrap_content normalmente.

Cuando se utilizan pesos se desea establecer el ancho a 0dp.

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/main" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" > <LinearLayout android:id="@+id/lowerLayout" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:weightSum="1.0" > <LinearLayout android:id="@+id/headerLayout" android:layout_width="0dp" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_weight=".7" > <Button android:id="@+id/previousMonthButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Previous" /> <TextView android:id="@+id/monthName" android:layout_width="0dip" android:layout_height="wrap_content" android:text="Large Text" android:layout_weight="1" android:textAppearance="?android:attr/textAppearanceLarge" android:gravity="center_horizontal" /> <Button android:id="@+id/nextMonthButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Next" /> </LinearLayout> <LinearLayout android:id="@+id/lowerLayout3" android:layout_width="0dp" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_weight=".3" > <Button android:id="@+id/addEvent" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> </LinearLayout> <LinearLayout android:id="@+id/lowerLayout2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:weightSum="1.0" > <LinearLayout android:id="@+id/monthView" android:layout_width="0dp" android:layout_height="match_parent" android:orientation="vertical" android:layout_weight=".7" > </LinearLayout> <ListView android:id="@+id/listView1" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight=".3" > </ListView> </LinearLayout> </LinearLayout> 

Creo que intenta agregar 2 cajones correderos.

El tamaño de la SlidingDrawer define la cantidad de espacio que ocupará el contenido una vez que se haya deslizado, por lo que SlidingDrawer debería utilizar normalmente match_parent para sus dos dimensiones. En este caso, una se superpone a otra para que no pueda ver el controlador.

Si se establece la visibilidad "ido" de la primera SlidingDrawer se puede ver la otra.

Actualizar

Hola ,

Prueba este código para que te ayude.

 <?xml version="1.0" encoding="utf-8"?> 

 <SlidingDrawer android:id="@+id/slidingDrawer1" android:layout_width="fill_parent" android:layout_height="0dip" android:layout_weight="1" android:content="@+id/content1" android:handle="@+id/handle1" > <Button android:id="@+id/handle1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Handle 1" > </Button> <LinearLayout android:id="@+id/content1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="#FF444444" android:gravity="center" android:orientation="vertical" > <Button android:id="@+id/item1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Handle 1 Item 1" > </Button> </LinearLayout> </SlidingDrawer> 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.