Soy nuevo en la programación. Estaba usando Graphical Layout y cuando estaba leyendo el archivo xml, vi FrameLayout. Luego busqué, pero no pude encontrar nada útil. ¿Qué es FrameLayout y qué hace?
Soy nuevo en la programación. Estaba usando Graphical Layout y cuando estaba leyendo el archivo xml, vi FrameLayout. Luego busqué, pero no pude encontrar nada útil. ¿Qué es FrameLayout y qué hace?
Respuestas:
Utiliza un FrameLayout para apilar las vistas secundarias una encima de la otra, con la secundaria más reciente encima de la pila. En el siguiente ejemplo, TextView es el más reciente, por lo que se coloca automáticamente en la parte superior de ImageView.
Por ejemplo:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView
android:id="@+id/backgroundImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="centerCrop"
android:src="@drawable/bitmapie" />
<TextView
android:id="@+id/descTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginTop="70dp"
android:background="@android:color/holo_blue_light"
android:padding="10dp"
android:text="TextView placed at the top of the Imageview"
android:textColor="@android:color/white"
android:textSize="22sp" />
</FrameLayout>
Salida:
FrameLayout
es la implementación más simple de ViewGroup
. Las vistas secundarias se dibujan en una pila, donde la última vista agregada se dibuja en la parte superior. Por lo general, puede usar uno de los siguientes enfoques o combinarlos:
FrameLayout
android:layout_gravity
para navegar por ellosOtros enfoques populares de uso FrameLayout
:
Fragment
contenedorViewGroup
Puede considerar la palabra frame
como un marco de fotos normal. ¿Qué haces con ese marco? puede colocar fotos en ese marco de una parte superior a otra. Al igual que en FrameLayout
, podemos colocar vistas (cualquier diseño o widget como botón, texto, imagen, etc.) una encima de otra, ya que @ojonugwa le muestra la vista de texto en la parte superior de la imagen.
iframe
como si vengo del desarrollo web. Gracias por la explicación más sencilla.
¿Estás seguro de que lo buscaste en Google?
El diseño del marco está diseñado para bloquear un área en la pantalla para mostrar un solo elemento. Generalmente, FrameLayout debe usarse para contener una sola vista secundaria, porque puede ser difícil organizar las vistas secundarias de una manera que sea escalable a diferentes tamaños de pantalla sin que los elementos secundarios se superpongan entre sí.
Sin embargo, puede agregar varios niños a un FrameLayout y controlar su posición dentro del FrameLayout asignando gravedad a cada niño, utilizando el atributo android: layout_gravity.
El secreto de FrameLayout es cómo distribuye a sus hijos. Aunque normalmente está diseñado para contener un elemento, felizmente apilará otros elementos uno encima del otro. Por tanto, FrameLayout es esencialmente una forma de manipular el orden Z de las vistas en la pantalla.
Esto es muy útil para un par de trucos de la interfaz de usuario, desde elementos similares a HUD hasta paneles deslizantes y transiciones animadas más complejas. En esta publicación veremos un ejemplo para cada uno de ellos.
FrameLayout está diseñado para mostrar un solo elemento a la vez. Puede tener varios elementos dentro de un FrameLayout, pero cada elemento se colocará en función de la parte superior izquierda de la pantalla. Los elementos que se superponen se mostrarán superpuestos. He creado un diseño XML simple usando FrameLayout que muestra cómo funciona.
Básicamente, coloca una vista encima de otra, por ejemplo:
Inflar texto en la imagen
<FrameLayout>
<ImageView>
<Textview>
</FrameLayout>