Ist es möglich, die swap-XML-layouts in runtime in Android?
Ist es möglich den laden meiner main.xml layout-Datei in der onCreate() und dann später in der app wechseln Sie in eine neue XML-layout? Ich habe versucht, die Platzierung setContentView() später in den app-das scheint aber nicht tatsächlich setzen Sie die neue Ansicht, da meine Verweise auf Objekte in der neu eingestellten xml-layout-Datei sind Rückgabe wie null. Ich habe versucht zu tun, einige layout-aufblasen mit dem LayoutInflater aber ich habe kein Glück (ich bin wahrscheinlich etwas falsch)...
Also gibt es eine andere Möglichkeit zu tauschen layout-xml-layouts zur Laufzeit?
Danke!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie können Ihre layouts in einer einzigen xml-Datei. Diejenigen, die Sie nicht wollen, sofort zu sehen, set
android:visibility="gone"
im XML-Code und zur Laufzeit würden Sie tun, einen Anruf zuhiddenView.setVisibility(View.VISIBLE);
.Ihre XML-würde etwa so Aussehen:
zur Laufzeit könnten Sie tun:
Dies würde im wesentlichen zu erstellen, die das Aussehen des layouts tauschen.
Ich glaube, das würde auch funktionieren, wenn Sie gemeinsam genutzte Objekte zwischen den beiden layouts. Nur stellen Sie sicher, dass Sie die id der ersten Verwendung
android:id="@+id/view1"
und jeder nachfolgender Einstellung der id, die Sie tun würdeandroid:id="@id/view1"
(ohne +).Kann nicht erstellen Sie einfach eine neue Aktivität? Ansonsten, ich denke, vielleicht möchten Sie sich auf die Beseitigung von Ansichten aus dem wichtigsten container-und Wiederaufbau Ihrer UI-Trog-code. setContentView kann nur aufgerufen werden, einmal pro Aktivität, wenn ich mich gut erinnern...
Ich denke auch, dass es wirklich klingt wie Sie eine neue Aktivität, aber ich glaube, man kann wieder aufpumpen etwas, wenn Sie manuell löschen Sie die vorhandenen Ansichten und rufen Sie dann
getLayoutInflater().inflate(resourceId, rootViewGroup)
.