Tengo una Custom ViewGroup
con algunas vistas dentro.force on Layout en una subvista cuyas dimensiones no cambian
En respuesta a un evento, se invoca un requestLayout y en OnLayout
algunas de las vistas obtienen una nueva posición de disposición.
Uno de ellos mantiene su posición pero necesita reorganizarse en su interior. Sin embargo, no se llamará al método onlayout de esta vista ya que su posición de diseño no cambia. Intentar llamar al requestLayout
, forceLayout
o invalidate
en esta vista no funciona.
El único truco sucio que he encontrado es cambiar parte de su posición de valor para forzar el cambio de diseño, pero creo que debería haber una manera mejor. Entonces, ahora hago algo (horrible) como:
int patch = 0;
@Override protected void onLayout(boolean changed, int l, int t, int r, int b) {
...
_myView.patchedLayout(patch);
_myview.layout(l1, t1 , r1, t1+patch);
patch = (patch+1) % 2;
...
}
¿Alguna manera de obtener el mismo resultado de una mejor manera?