Mam niestandardowy ViewGroup
z pewnymi widokami w środku.wymuszanie onLayout w subView, którego wymiary się nie zmieniają
W odpowiedzi na zdarzenie wywoływana jest opcja requestLayout, a w niektórych widokach otrzymuje nową pozycję układu.
Jedna z nich zachowuje swoją pozycję, ale musi zostać uporządkowana wewnątrz. Jednak metoda onlayout tego widoku nie zostanie wywołana, ponieważ jego pozycja układu nie ulegnie zmianie. Próba wywołania requestLayout
, forceLayout
lub invalidate
w tym widoku nie działa.
Jedyną brudną sztuczką, którą znalazłem, jest zmiana niektórych jej pozycji wartości, aby wymusić zmianę układu, ale myślę, że powinien istnieć lepszy sposób. Tak więc, teraz robię coś (strasznego) jak:
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;
...
}
Jakikolwiek sposób, aby uzyskać ten sam wynik w lepszy sposób?