2016-07-06 8 views
0

Mein Ziel ist es, Redraw-Ansicht auf Sprachwechsel zu machen. Ich habe erfolgreich das aktuelle Fragment gelöst und angehängt, aber die Schubladenelemente werden nicht übersetzt. Ich NICHT Activity.recreate() verwenden DO wollen, und ich habe bereits versucht:Android Redraw-Ansicht bei Sprachwechsel

View myView = (View)findViewById(R.id.my_view); 
myView.invalidate(); 

ohne Erfolg ...

+0

Können Sie versuchen, stattdessen die Methode requestLayout() aufzurufen? –

+0

funktioniert auch nicht – TeodorKolev

Antwort

1

Mein Vorschlag, um Ihre UI-Änderung durch eine einzige Funktion zu machen. und rufen Sie es von onActivityCreated oder onCreateView gemäß Ihrem Code auf. So, jetzt, wann immer Sie die Sprache ändern werden, rufen Sie einfach diese Funktion auf, es wird sich darum kümmern, die ganze Ansicht automatisch zu aktualisieren.

0

Aktualisieren Sie die AndroidManifest Datei mit der folgenden Konfiguration:

android:configChanges="locale" 

In der Aktivitätslevel. Dies löst die folgenden aus:

Sie können diese Methode in Ihrem Code überschreiben und die Ansicht von dort aktualisieren. Weitere Informationen finden Sie unter at this link

+0

Völlig außer Frage ... – TeodorKolev

+0

@TeodorKolev Haben Sie es versucht? Bitte lass mich etwas klären. Der "Sprachwechsel" bedeutet, dass Sie die Sprache vom System geändert haben, oder? Wenn dies der Fall ist, bedeutet dies, dass die Aktivität nicht neu erstellt wird und weiterhin ausgeführt wird und die onConfigurationChanged() -Methode aufgerufen wird, wenn Sie die Konfiguration in AndroidManifest hinzufügen. Dies ist vom obigen Link aus der offiziellen Android-Dokumentation. Versuchen Sie anschließend, vor dem Aufruf von super.onConfigurationChanged (newConfig) die Sicht ungültig zu machen. –