Aktualisieren oder erzwingen Sie das erneute Zeichnen des Fragments

Ich habe ein Fragment, das ein XML-Layout aufbläst. Meine Anforderung ist, die Textgröße für alle meine Ansichten in meinem Fragment zu aktualisieren, wenn meine Aktivität fortgesetzt wird. Ich habe es versucht

    fragment.getView().invalidate();

das schien die Arbeit nicht zu tun. Ich habe es auch versucht

    fragment.getView().requestLayout();

das hat auch nicht funktioniert.

Bei einer anderen Aktivität habe ich ein ListFragment, das dasselbe tun muss. Ich habe es versucht

    listfragment.getListView().invalidate();

welchehat den Trick gemacht, meine Listenansicht aktualisieren und alle darin enthaltenen Elemente neu zeichnen.

Ich verstehe nicht, warum das eine funktioniert, das andere aber nicht.

Ich habe auch Leute gesehen, die empfohlen haben, eineFragmenttransaktion und Ersetzen des aktuellen Fragments durch ein neues, und es hat mich immer wieder gefragt

Warum sollte ich ein ganz neues Fragment erstellen und mein aktuelles Fragment ersetzen, wenn ich nur den Text in den Ansichten aktualisieren muss, die mein Fragment enthält?

Die Fragmenttransaktionsmethode verhindert, dass ich mein Fragment im Layout-XML meiner Aktivität definiere, und ich muss das Fragment programmgesteuert an der richtigen Position einfügen.

Gibt es einen einfachen Ansatz dafür?

Antworten auf die Frage(8)

Ihre Antwort auf die Frage