¿Cómo llevar una vista al frente sin llamar a bringToFront ()?
Aparentemente hay unerror en Android que se rompeView.bringToFront
.
Si tengo Vistas organizadas en un GridView y quiero traer una Vista al frente llamando a bringToFront (), puede moverse a la posición inferior derecha en el GridView.
Algo sospechoso está sucediendo allí, así que no puedo usar bringToFront (). Cuando no lo llamo, todo funciona bien. Pero las vistas se superponen: si uso la animación de escala para escalar una vista, las vistas se oscurecen parcialmente en la parte inferior y a la derecha.
He comprobado la fuente de bringToFront y llama a parent.bringChildToFront (...)
es este metodo
public void bringChildToFront(View child) {
int index = indexOfChild(child);
if (index >= 0) {
removeFromArray(index);
addInArray(child, mChildrenCount);
child.mParent = this;
}
}
aparentementeelimina la vista de sí mismo! ¡Sin piedad! ¿Es un ViewGroup tan tonto que no puede administrar los índices Z de ninguna otra manera que los controles aleatorios? Obviamente, cuando GridView elimina su chil, dy luego lo vuelve a agregar, ¡se coloca al final de la cuadrícula!
¿Hay algo que pueda hacer para mostrar una Vista encima de otras sin recurrir a alguna piratería? Una cosa que me viene a la mente es crear otra vista sobre GridView, que parecerá estar sobre la que estoy tratando de traer a FrontFront (), pero no me gusta esta solución.