Ich erstelle ein Raster, das Werte anzeigt, die sich sehr oft ändern. Aus diesem Grund benutze ich eine TextView, die automatisch aktualisiert, wenn sich ihr Inhalt ändert (Auto Scale TextView Text to Fit within Bounds). Die Resize erfolgt, aber die Aussicht Layout nicht richtigLayout einer Ansicht nach der Größenänderung
Die Sache ist, wenn ich die Aktivität mit HierarchyViewer den Layout-Displays untersuchen, wie ich will.
Meine Vermutung ist, dass HierarchyViewer ruft requestLayout() oder() in der Ansicht ungültig machen, aber ich habe versucht, dass ohne Erfolg. Dieser Code wird in der Hauptaktivität ohne Auswirkung aufgerufen.
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
getWindow().getDecorView().requestLayout();
getWindow().getDecorView().invalidate();
}
}, 5000);
Ich habe auch versucht, die Ansicht nach der Größenänderung ungültig zu machen.
Der TextView hat gravity auf Center eingestellt, und wenn keine Größenänderung stattfindet, sieht es ok aus.
Jeder Hinweis wird willkommen sein, danke im Voraus!
Haben Sie versucht, das Layout in der übergeordneten Ansicht und nicht in der Dekoransicht anzufordern? – DeeV
Ist die Dekoransicht nicht der Elternknoten des Ansichtsbaums? Ich habe gelesen, dass die Anforderung des Layouts in einer Ansicht dazu führt, dass alle untergeordneten Elemente das Layout anfordern. Wie auch immer, ich würde sagen, dass ich das versucht habe, da ich viele Dinge ausprobiert habe, aber ich melde mich zurück, wenn ich deine Vorschläge ausprobiere. Angeben der requestLayout-Dokumente in der view.View, "Rufen Sie dies auf, wenn sich etwas geändert hat, was das Layout dieser Ansicht ungültig gemacht hat. Dadurch wird ein Layout-Durchlauf der Ansichtsstruktur geplant." – Maragues
Es tut, aber ich kann nichts mit Ihrem Code falsch sehen. requestLayout() layouts eine Elternansicht und es sind Kinder, aber ich habe es nur auf Ansichten direkt von meiner App gesteuert, so ist es nur ein Gedanke. – DeeV