Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


¿Cómo puedo cambiar el tamaño de dos fragmentos en la pantalla por el enfoque?

Tengo tres fragmentos, los dos primeros llenando el 80% de la pantalla y el último con el resto (este nunca va a cambiar de tamaño). Quiero, después de la entrada del usuario (foco) en un fragmento, cambiar el tamaño del fragmento para que llene el 70% de la pantalla (dejando 10% a la otra). Me gusta esto:

Introduzca aquí la descripción de la imagen

¿Es posible cambiar dinámicamente el peso de un fragmento? O hay una mejor manera de lograr esto?

Este es el código que tengo ahora en el XML:

<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_layout" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <FrameLayout android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:weightSum="1.0"> <FrameLayout android:id="@+id/containerParent" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight=".8"> <LinearLayout android:id="@+id/MainLinear" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:weightSum="1.0"> <FrameLayout android:id="@+id/fragment1" android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight=".5"/> <FrameLayout android:id="@+id/fragment2" android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight=".5"/> </LinearLayout> </FrameLayout> <FrameLayout android:id="@+id/fragment3" android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight=".2"/> </LinearLayout> </FrameLayout> </android.support.v4.widget.DrawerLayout> 

    One Solution collect form web for “¿Cómo puedo cambiar el tamaño de dos fragmentos en la pantalla por el enfoque?”

    Debe ser algo como:

     LinearLayout.LayoutParams param = new LinearLayout.LayoutParams( LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, WEIGTH_HERE); 

    Suponiendo que WEIGHT_HERE es un flotador (el molde puede ser necesario).

    (No sé si es una buena manera de hacerlo, pero debe hacer lo que quieras)

    Y si quieres usar esto con un botón o algo simplemente haz lo mismo sin los parámetros de PESO y agrega:

     Button b = new Button(this); param.weight= (float) 0.5 // 0.5f b.setLayoutParams(param); 

    Pero este método creará un nuevo Layout Paramater, así que si quieres mantenerlo todo, haz lo mismo, pero no crees un nuevo diseño, edita el que ya tienes:

     LinearLayout.LayoutParams mLay = (LinearLayout.LayoutParams)myLay.getLayoutParams(); mLay.weight = (float) WEIGTH // WEIGHTf 
      FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.