Android: cuando / por qué debo usar FrameLayout en lugar de Fragment?
Estoy construyendo un diseño para pantallas grandes, que se supone que consiste en 2 partes diferentes, una izquierda y una derecha. Para hacer eso pensé usando 2 Fragmentos es la opción correcta.
Luego eché un vistazo al ejemplo de la navegación con el Master / Detail-Flow . Tiene un diseño de 2 paneles, donde a la derecha está la navegación, ya la izquierda está la vista de detalle.
- Uso de FrameLayout como fondo de pantalla en vivo
- Construcción de un contenedor capaz de hacer zoom
- Escala la imagen de fondo para ajustar el contenido del diseño
- FrameLayout no coincide con altura de NestedScrollView
- Conversión de FrameLayout como mapa de bits
Pero en ese ejemplo, diferente a lo que esperaba ver, para la vista de detalle hay un FrameLayout
que entonces contiene un Fragment
, en lugar de un Fragment
directamente.
La disposición XML se parece a esto (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 Fragment
sí para la vista de detalle? ¿Cuál es la razón o la ventaja? ¿Debo usarlo también?
- Después de que el fragmento de cambio de configuración de backstack ahora está compartiendo el FrameLayout?
- Android: ¿Cómo usar colores personalizados?
- Android: Reutilización de vistas incrustadas en gridview
- ¿Por qué se utiliza FrameLayout para fragmentos?
- Cambiar el contenido de framelayout en el botón de clic
- Cómo usar el arrastrar correctamente de una vista en android
- Agregar una vista de texto a un FrameLayout en una posición determinada
- Superponer imagen sobre otro android
El contenedor de detalle es FrameLayout
porque el Fragment
que se muestra se reemplazará mediante el método replace()
FragmentTransaction
.
El primer argumento a replace()
es el ID del contenedor cuyos Fragmentos serán reemplazados. Si FrameLayout en este ejemplo se reemplazó con un fragmento, entonces tanto el WorkStationListFragment
como cualquier fragmento de detalle que se muestra actualmente se reemplazaría por el nuevo fragmento. Al encapsular el fragmento dentro de un FrameLayout, puede reemplazar sólo los detalles.
Agregue un fragmento a una actividad utilizando <fragment>
si no lo necesita para responder a los cambios en la interfaz de usuario. De lo contrario, utilice un <FrameLayout>
Un diseño de trama es un tipo de grupo de vistas que se utiliza para bloquear un área en la pantalla.
- Android: cómo obtener la intención recibida por un servicio?
- Cómo reanudar la actividad en lugar de reiniciar al ir "arriba" de la barra de acción