vida studio onattach navegar llamar lanzar fragments example entre destruir desde ciclo activity abrir android android-fragments framelayout

onattach - navegar entre fragments android studio



Android: ¿cuándo/por qué debería usar FrameLayout en lugar de Fragment? (1)

El contenedor de detalles es FrameLayout porque el Fragment que se muestra se reemplazará utilizando el método FragmentTransaction ''s replace() .

El primer argumento para replace() es la ID del contenedor cuyos Fragmentos serán reemplazados. Si el FrameLayout en este ejemplo fuera reemplazado por un Fragmento, entonces tanto el Fragmento de Lista de Trabajo como cualquier Fragmento de detalle que se muestre actualmente serían reemplazados por el nuevo Fragmento. Al encapsular el Fragmento dentro de FrameLayout, puede reemplazar solo los detalles.

Estoy construyendo un diseño para pantallas grandes, que se supone que consta de 2 partes diferentes, una a la izquierda y otra a la derecha. Por hacer eso, pensé que usar 2 Fragments es la elección correcta.

Luego eché un vistazo al ejemplo de la navegación con el Master / Detail-Flow . Tiene un diseño de dos paneles, donde a la derecha está la navegación y a la izquierda está la vista de detalles.

Pero en ese ejemplo, diferente de lo que esperaba ver, para la vista detallada hay un FrameLayout que contiene un Fragment , en lugar de un Fragment directamente.

El diseño XML se ve así (un ejemplo):

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginLeft="16dp" android:layout_marginRight="16dp" android:baselineAligned="false" android:divider="?android:attr/dividerHorizontal" android:orientation="horizontal" android:showDividers="middle" tools:context=".WorkStationListActivity" > <fragment android:id="@+id/workstation_list" android:name="de.tuhh.ipmt.ialp.history.WorkStationListFragment" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" tools:layout="@android:layout/list_content" /> <FrameLayout android:id="@+id/workstation_detail_container" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="3" /> </LinearLayout>

Mi pregunta ahora es: ¿por qué se utiliza un FrameLayout lugar del propio Fragment para la vista de detalle? ¿Cuál es el motivo o la ventaja? ¿Debo usarlo también?