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


Agregar múltiples fragmentos mediante programación

Estoy utilizando la transacción del fragmento para agregar dos fragmentos a una actividad. Pero sucede que sólo se muestra el primer fragmento cuando se inicia la aplicación. Aquí está el código:

Actividad principal

  • Cómo hacer referencia a un estilo en un tema personalizado
  • Traducir fácilmente xml en Android
  • Centrar un CardView en un RecyclerView con un solo elemento
  • Cambiar el color de la palabra en la cadena de recursos
  • Tostas versus cuadros de diálogo: ¿cuál usar cuando?
  • Android GoogleAPIClient - NoClassDefFoundError: com / google / android / gms / interno / zzsa
  • @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); FragOne firstButton = new FragOne(); FragmentTwo secButton = new FragmentTwo(); FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); transaction.add(R.id.frag_container, firstButton); transaction.add(R.id.frag_container, secButton); transaction.commit(); } 

    Activity_main.xml

     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:id="@+id/frag_container" android:layout_height="fill_parent" android:orientation="horizontal"> </LinearLayout> 

    Frag_one.xml y frag_two.xml son similares

     <?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:orientation="vertical" > <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button One" /> </LinearLayout> 

    Así que no estoy seguro de cuál podría ser el problema … Vi muchos ejemplos con la adición de un fragmento.

  • Error de Gradle: No se encontró com.android.tools.build:gradle:2.2.3
  • Referencia del código F # en el proyecto android
  • Seguimiento de la memoria / fugas de la ventana en Android?
  • Error durante la sincronización: tiempo de espera al desplegar apk en el dispositivo mediante maven
  • ¿Cómo usar la notificación con sonido y vibración?
  • API de historiales de Android 4.0 e HTML5
  • 5 Solutions collect form web for “Agregar múltiples fragmentos mediante programación”

    No estoy seguro, pero es posible que tanto el fragmento se agregan realmente, sino porque son exactamente los mismos y se encuentran en un LinearLayout – uno es ocultar el otro.

    Si yo fuera usted cambiaría el diseño en la actividad principal para ser un diseño relativo y agregaría el fragmento a dos diferentes titular de lugar para comprobar si este es el problema.

    En realidad no he ejecutado el programa por lo que podría ser otra cosa enteramente … buena suerte!

    Porque los parámetros de altura de ambos fragmentos del archivo xml es "match_parent"

     <?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" WRONG!!! need to be "wrap_content"* android:orientation="vertical" > <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button One" /> </LinearLayout> 

    Por lo tanto su primer fragmento se infla en toda la altura de su padre y cuando los otros fragmentos añadidos no tienen lugar para ser.

    Por lo tanto establecer null en el parámetro container en método onCreateView no es la forma correcta de resolver el problema.

    Sólo tienes que configurar android: layout_height = "wrap_content"

    Sé que es demasiado tarde para responder, pero he descubierto el problema. Su frag_one.xml y frag_two.xml tienen el siguiente aspecto:

     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button One" /> </LinearLayout> 

    Observe que LinearLayout tiene layout_height definido como match_parent . ¿No ocuparía toda la pantalla?

    Simplemente wrap_content y funcionaría. Acabo de resolver mi caso que era idéntico al tuyo.

    Mi problema se resolvió asegurándose de que el LinearLayout tenía su orientación a la vertical en lugar de la horizontal por defecto.

    Sí, tienes razón, los fragmentos se añaden, pero el problema es que los diseños de fragmentos se añaden uno sobre otro … El problema estaba en el código de fragmentos

     View view = inflater.inflate(R.layout.frag_one, container, false); 

    cambiado a

     View view = inflater.inflate(R.layout.frag_one, null); 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.