¿Cómo obtener todas las vistas en una actividad?
Hay una manera de obtener todas las vistas que está dentro de mi actividad? Tengo sobre 200 puntos de vista incluyendo los botones, y las imágenes, así que quiero poder tener acceso a ellas usando un lazo
Por ejemplo algo como
- Android slide down animación
- Android - view.Surface OutOfResourcesException
- ¿Cómo obtener una vista más grande que su padre?
- Caché de dibujo de Android
- Cómo detectar si la actividad principal de la vista se está destruyendo
for (View v : this) { //do something with the views //depending on the types (button, image , etc) }
- Visibilidad de un botón en el temporizador
- 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 TextView en la parte superior de una vista
- Disposición de Android Los parámetros cambian SÓLO el ancho y la altura
- Mejores prácticas de Android: vistas / actividades
- Android: cambiar pantallas con nueva actividad o simplemente cambiar la vista de contenido
- Android ¿hay alguna llamada de vista cuando se destruye?
- Mostrar widgets en la vista de mapa
Hay una manera de obtener todas las vistas que está dentro de mi actividad?
Obtenga su View
raíz, ViewGroup
a un grupo de ViewGroup
, llame a getChildCount()
y getChildAt()
, y recurse según sea necesario.
Tengo sobre 200 puntos de vista incluyendo los botones, y las imágenes, así que quiero poder tener acceso a ellas usando un lazo
Ese es un número bastante grande de Views
.
Intente encontrar todas las vistas asociadas con la Actividad.
Dé el siguiente comando.
ViewGroup viewgroup=(ViewGroup)view.getParent(); viewgroup.getchildcount();
Iterar a través del bucle.
Conseguiremos el resultado.
Ser específico:
private void show_children(View v) { ViewGroup viewgroup=(ViewGroup)v; for (int i=0;i<viewgroup.getChildCount();i++) { View v1=viewgroup.getChildAt(i); if (v1 instanceof ViewGroup) show_children(v1); Log.d("APPNAME",v1.toString()); } }
Y luego utilizar la función en alguna parte:
show_children(getWindow().getDecorView());
Para mostrar todas las vistas en la actividad actual.
Puede utilizar el jerarquizador, Permite ver la jerarquía de la vista, incluidas las creadas en el código. Es la razón principal es para depurar cosas como esta. El último Android Studio ahora tiene esta función en el Monitor de dispositivos que te permite hacer un volcado de la interfaz de usuario para depurarlo.
- Padding arround textview con fondo de nueve parches no tienen efecto visual
- ¿Cómo puedo obtener las coordenadas de un mapa al toque con MapFragment (no MapView)?