¿Cambiar el ancho del cajón en Android por peso?
Tengo este diseño, con un cajón adentro:
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/drawer" android:layout_width="match_parent" android:layout_height="match_parent" > <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".Main" /> <LinearLayout android:id="@+id/drawer" android:layout_width="240dp" android:layout_height="match_parent" android:orientation="vertical"/> </android.support.v4.widget.DrawerLayout>
Quiero cambiar el ancho del cajón estableciendo pesos, ¿cómo hacerlo con este ejemplo? Quiero que el ancho del cajón tome siempre 1/2 de la anchura visible de la pantalla.
- No atenuar el contenido principal cuando DrawerLayout es visible?
- DrawerLayout con dos cajones: Derecho uno "saltando" cuando se deja uno abierto?
- DrawerLayout sin soporte de la biblioteca para MinSDK> = 15
- Android DrawerLayout no muestra el icono del indicador derecho
- Cómo utilizar dos fragmentos en Android DrawerLayout
- DrawerLayout.openDrawer no funciona la primera vez
- Deshabilitar gesture listener en DrawerLayout
- DrawerLayout evita eventos táctiles en EditText
- ¿Es posible usar algo que no sea un listview como cajón deslizante en cajón
- Diferencia entre SlidingPaneLayout y NavigationDrawer
Lo haría de forma programática en su código. Usted necesitará el ancho y la altura de la pantalla y entonces usted puede modificar el ancho de su disposición linear arriba. Obtenga la altura y el ancho con lo siguiente:
Display display = getWindowManager().getDefaultDisplay(); Point size = new Point(); display.getSize(size); displayViewWidth_ = size.x; displayViewHeight_ = size.y;
A continuación, puede asignar a su diseño un nuevo ancho dentro de su código basado en este cálculo, como por ejemplo:
ViewGroup.LayoutParams params = drawer.getLayoutParams() params.width = displayViewWidth_ / 2; drawer.setLayoutParams(params);