Tworzę siatkę, która wyświetla wartości, które zmieniają się bardzo często. Z tego powodu korzystam z TextView, który autorejestruje się, gdy zmienia się jego zawartość (Auto Scale TextView Text to Fit within Bounds). Zmiany rozmiaru odbywa, ale widok nie układ prawidłowoUkład widok po zmianie rozmiaru
Chodzi o to, kiedy zbadać aktywność z HierarchyViewer wyświetlacze układu, jak chcę.
Domyślam się, że HierarchyViewer wywołuje requestLayout() lub unieważnić() na widoku, ale próbowałem to bez powodzenia. Ten kod jest wywoływany w głównym działaniu bez żadnego efektu.
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
getWindow().getDecorView().requestLayout();
getWindow().getDecorView().invalidate();
}
}, 5000);
Próbowałem również unieważnić widok po zmianie rozmiaru.
W TextView ustawiono grawitację na Środek, a jeśli nie ma zmiany rozmiaru, wygląda to dobrze.
Wszelkie wskazówki będą mile widziane, z góry dzięki!
Czy próbowałeś zażądać układu w widoku rodzica zamiast widoku dekoracyjnego? – DeeV
Czy widok dekoracji nie jest węzłem nadrzędnym drzewa widoku? Czytałem, że żądanie układu w widoku powoduje, że wszystkie jego dzieci żądają układu. W każdym razie, powiedziałbym, że próbowałem tego, ponieważ próbowałem wielu rzeczy, ale odpowiem, kiedy spróbuję twoich sugestii. Cytowanie dokumentów requestLayout na view.View, "Zadzwoń, gdy coś się zmieniło, co unieważniło układ tego widoku. Zaplanuje to przejście układu drzewa widoku." – Maragues
To robi, ale nie widzę niczego złego w twoim kodzie. requestLayout() układa widok nadrzędny i jest to element potomny, ale nazwałem go tylko widokami bezpośrednio sterowanymi przez moją aplikację, więc jest to tylko myśl. – DeeV