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


No se pueden agregar varios fragmentos a LinearLayout

Estoy utilizando un LinearLayout con una orientación vertical para enumerar fragmentos. Añado fragmentos al contenedor mediante programación como esto:

FragmentTransaction ft = fragmentManager.beginTransaction(); Fragment fragment1 = new Fragment(); ft.add(R.id.llContainer, fragment1); Fragment fragment2 = new Fragment(); ft.add(R.id.llContainer, fragment2); ft.commit(); 

Pero sólo muestra el primer fragmento. ¿Por qué?

  • ScrollView no se desplaza en absoluto
  • Iniciar dos animaciones en el mismo Layout
  • Listview addFooterView problemas
  • ¿Está bien usar LinearLayout en lugar de FrameLayout?
  • Pasar el enfoque de padres a hijos en Linear Layout
  • Peso anidado en disposición lineal
  • ¿Cómo colocar textview a la derecha ya la izquierda del diseño?
  • Android: dibujable junto a TextView con el peso de cada TextView en LinearLayout
  • 3 Solutions collect form web for “No se pueden agregar varios fragmentos a LinearLayout”

    Puede tener varios fragmentos en un LinearLayout .

    Según la documentación ,

    Si agrega varios fragmentos al mismo contenedor, el orden en el que los agrega determina el orden en el que aparecen en la jerarquía de vistas

    El problema con su código es que debido a que no especificó etiquetas de fragmento, se aplicó por defecto al identificador del contenedor. Dado que el identificador del contenedor es el mismo para ambas transacciones, la segunda transacción reemplazó el primer fragmento, en lugar de agregarlo al contenedor por separado.

    Para hacer lo que quieras, usa algo como:

     FragmentTransaction ft = fragmentManager.beginTransaction(); Fragment fragment1 = new Fragment(); ft.add(R.id.llContainer, fragment1, "fragment_one"); Fragment fragment2 = new Fragment(); ft.add(R.id.llContainer, fragment2, "fragment_two"); ft.commit(); 

    Supongo que usted tiene que definir separe contenedores en su diseño para cada fragmento.

     <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:baselineAligned="false" android:orientation="vertical"> <FrameLayout android:id="@+id/content_secondary" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1"> </FrameLayout> <FrameLayout android:id="@+id/content_primary" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" > </FrameLayout> </LinearLayout> 

    Tenía el mismo problema, pero usar

      @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.control_list, container, false); 

    IE usando un archivo de diseño xml:

     <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/control_list"> </LinearLayout> 

    Resuelto mi problema. Al crear el LinearList programáticamente sólo apareció el primer fragmento para mí.

    Que está utilizando un archivo xml para el diseño que desea agregar los fragmentos a.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.