Activity.addContentView (Vista) == ViewGroup.addContentView (Ver)?

Tengo una pregunta sobre las actividades de Android. Una actividad tiene el método addContentView(View) mientras que un ViewGroup tiene un (similar?) addView(View) . Desafortunadamente su indocumentado "donde" la vista de addContentView se coloca. ¿Es como un LinearLayout simplemente agregar la vista al fondo? ¿Es más como un FrameLayout , que añade sus vistas "onTop"? ¿Depende de ViewGroup establecido por setContentView ? Si me sumerjo en las fuentes veo que addContentView llamará al método abstracto de Window addContentView . Desafortunadamente no puedo ver la clase que está implementando este método. Entonces, ¿cuál es el comportamiento de las actividades addContentView exactamente?

El diseño base de cada actividad es FrameLayout . Esto significa que la disposición que usted fija generalmente vía setContentView() es un niño de esta disposición. addContentView() agrega sólo a otro niño, por lo tanto, se comporta como un FrameLayout (lo que significa que añade nuevos elementos de interfaz de usuario sobre los ya existentes) .

Puede comprobar esto utilizando una herramienta llamada hierachyviewer de su carpeta ANDROID_SDK\tools . Aquí hay dos capturas de pantalla:

Introduzca aquí la descripción de la imagen

Este es el diseño antes de llamar a addContentView() , mi actividad consiste en el FrameLayout por defecto, manteniendo un LinearLayout con un botón (mi diseño aquí). Esto se refleja en la fila inferior aquí, los otros elementos arriba son el título / barra de estado.

Introduzca aquí la descripción de la imagen

Después de agregar un TextView a través de addContentView() se ve así. Puede ver que la base FrameLayout tiene un nuevo hijo.

  • Botones en una vista personalizada cuando la vista personalizada se encuentra en una pestaña
  • Android expandablelistview, expanda la vista sólo al hacer clic en el indicador de grupo, abra una nueva actividad si hace clic en cualquier lugar, pero groupindicator
  • OnDraw Vista personalizada dentro de un Scrollview
  • Custom ExpandableListview Android
  • Android: ¿puedo crear una vista / lienzo que no sea rectangular, pero por ejemplo, redondo?
  • agregar vista (vista de texto) en AsyncTask
  • Android: aplica una transformación arbitraria a una vista
  • ¿View.setVisibility (View.VISIBLE) obliga a la vista a volver a dibujar incluso si ya es visible?
  • Vistas duplicadas en Android durante el tiempo de ejecución
  • Escala de diseño relativo personalizado?
  • Android toggleButton.setOnText y .invalidate no actualiza el texto
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.