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?