Ho una personalizzazione ViewGroup
con alcune viste all'interno.force onLayout in una subView le cui dimensioni non cambiano
In risposta a un evento, viene chiamato un requestLayout e in OnLayout
alcune delle viste avranno una nuova posizione di layout.
Uno di questi mantiene la sua posizione ma deve essere riorganizzato all'interno. Tuttavia, il metodo onlayout di questa vista non verrà chiamato poiché la sua posizione di layout non cambia. Cercando di chiamare requestLayout
, forceLayout
o invalidate
in questa visualizzazione non funziona.
L'unico trucco sporco che ho trovato è di modificare parte della sua posizione di valore per forzare la modifica del layout, ma penso che ci dovrebbe essere un modo migliore. Quindi, ora faccio qualcosa (orribile) come:
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;
...
}
Un modo per ottenere lo stesso risultato in un modo migliore?