Obtener la vista de raíz de la actividad actual

Sé cómo obtener la vista raíz con View.getRootView () . También puedo obtener la vista del evento onClick de un botón donde el argumento es una vista . Pero, ¿cómo puedo obtener la vista en una actividad ?

6 Solutions collect form web for “Obtener la vista de raíz de la actividad actual”

Si necesita una vista de la raíz de su actividad (para que pueda agregar su contenido allí) utilice

 findViewById(android.R.id.content) 

También se informó que en algunos dispositivos se debe utilizar

 getWindow().getDecorView().findViewById(android.R.id.content) 

en lugar.

Tenga en cuenta que, como informó Booger, esto puede estar detrás de la barra de navegación (con botón de retroceso, etc.) en algunos dispositivos (pero parece que en la mayoría de los dispositivos no lo es).

Si necesitas obtener una vista que hayas agregado a tu actividad usando el método setContentView() , entonces como escribió pottedmeat puedes usar

 final ViewGroup viewGroup = (ViewGroup) ((ViewGroup) this .findViewById(android.R.id.content)).getChildAt(0); 

Pero mejor solo establezca el identificador en esta vista en su diseño xml y utilice este id en su lugar.

Esto es lo que uso para obtener la vista raíz como se encuentra en el archivo XML asignado con setContentView :

 final ViewGroup viewGroup = (ViewGroup) ((ViewGroup) this .findViewById(android.R.id.content)).getChildAt(0); 

He probado esto en android 4.0.3, sólo:

 getWindow().getDecorView().getRootView() 

Dar la misma opinión de lo que obtenemos de

 anyview.getRootView(); com.android.internal.policy.impl.PhoneWindow$DecorView@######### 

y

 getWindow().getDecorView().findViewById(android.R.id.content) 

Dando a luz a su hijo

 android.widget.FrameLayout@####### 

Por favor confirmar.

Sólo incase Alguien necesita una manera más fácil:

El siguiente código da una vista de toda la actividad:

View v1 = getWindow().getDecorView().getRootView();

Para obtener una vista certian en la actividad, por ejemplo una imageView dentro de la actividad, simplemente añada el id de esa vista que desea obtener:

 View v1 = getWindow().getDecorView().getRootView().findViewById(R.id.imageView1); 

Espero que esto ayude a alguien

Dentro de nuestra actividad podemos obtener la vista de la root con:

 ViewGroup rootView = (ViewGroup) ((ViewGroup) this .findViewById(android.R.id.content)).getChildAt(0); 

o

 View rootView = getWindow().getDecorView().getRootView(); 

Si está en una actividad, asuma que sólo hay una vista de raíz, puede obtenerla así.

 ViewGroup viewGroup = (ViewGroup) ((ViewGroup) this .findViewById(android.R.id.content)).getChildAt(0); 

Usted puede entonces lanzarlo a su clase real

O usted podría usar

 getWindow().getDecorView(); 

Observe que esto incluirá la vista de la barra de acciones, su vista está por debajo de la vista de la barra de acciones

  • Android: ¿es eficiente almacenar referencias a Views como variables miembro?
  • ¿Crear una vista personalizada inflando un diseño?
  • Android: cambiar pantallas con nueva actividad o simplemente cambiar la vista de contenido
  • Android slide down animación
  • Restaurar vista a estado xml original
  • ¿Cómo puedo implementar esta vista en Android?
  • Cómo comprobar si la vista es visible para el usuario
  • Android View PerformClick () y callOnClick () diferencia
  • No error "Sólo el subproceso original que creó una jerarquía de vista puede tocar sus vistas" cuando la vista se actualiza sin demora
  • Android ¿hay alguna llamada de vista cuando se destruye?
  • ¿Cómo obtener una vista más grande que su padre?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.