7

¿Para qué sirve FrameLayout en Android? ¿Hay algún escenario específico para el cual está diseñado?¿Cuál es el propósito de FrameLayout y en qué escenario deberíamos usarlo?

En mi aplicación de Android, tengo un escenario en el que tengo que mostrar dos ImageView s, uno sobre el otro. Este es un archivo de imagen .png con un parche 9 que se puede dibujar sobre esta imagen.

¿Cuál ViewGroup debo usar para este propósito: RelativeLayout o FrameLayout?

También quiero saber los diferentes escenarios para los que se debe usar cada uno de los ViewGroup s.

Respuesta

-4

Sí, puede usar un FrameLayout en su situación.

+0

¿Puedo usar o debo usar? :) ¿Hay algún problema de rendimiento relacionado con el uso de diseño Frame o Relative? Espero que entiendas mi punto. – Ankit

+2

@Ankit No estoy seguro sobre los problemas de rendimiento (supongo que 'FrameLayout' tiene una huella de memoria más pequeña, porque es más simple). 'FrameLayout' es mucho más fácil de configurar (solo' Gravity.LEFT', 'Gravity.RIGHT', etc.)' RelativeLayout' es mucho más complicado y más configurable. Simplemente elija la complejidad que necesita para la situación. – Ancantus

0

No recuerdo cómo llegué a esta pregunta, pero aquí es mi respuesta que podría ayudar a cualquier persona:

Como se puede ver here

FrameLayout está diseñado para bloquear un área en el pantalla para mostrar un solo elemento. En general, FrameLayout se debe usar para mantener una sola vista secundaria, porque puede ser difícil organizar las vistas secundarias de una manera escalable para diferentes tamaños de pantalla sin que los niños se superpongan entre sí.

En general no es útil tener 2 puntos de vista uno sobre el otro, ya que vamos a tener un efecto de descubierto (una zona de la pantalla que está siendo elaborado por la GPU más de una vez que es realmente inútil).

Si realmente tiene que, a continuación, es necesario utilizar el método onDraw (se puede ver un ejemplo here) y la API de mano (echar un vistazo here) y el método clipRect (se puede ver un ejemplo here)

Con respecto a FrameLayout o RelativeLayout, si quiere mantener las cosas simples o si su actividad ya tiene suficientes diseños anidados, mejor use FrameLayout. En 2017, existe el diseño de restricción que podría ser de alguna ayuda también.

Cuestiones relacionadas