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 .
- El elemento ListView no extenderá el ancho a fill_parent
- Cómo hacer android buscar barra de ancho completo en api 17 o superior?
- LinearLayout ImageView Redimensionar todos los anchos de imagen para ajustar
- Diseño de tabla XML? ¿Dos filas de la misma anchura con botones de igual anchura?
- Cómo establecer el ancho de divisor ListView?
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>
- SetWidth () Botón de Android
- ¿Cómo establecer el ancho mínimo fijo de EditText para que se ajuste firmemente alrededor de la pista y el contenido limitado por duración limitada?
- Android DataBinding layout_width: Debe proporcionar un atributo layout_width
- Diseño de android redimensionamiento de los padres sin cambiar el tamaño de los childs
- Anchos diferentes de diseños de Android en ViewPager
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>