Wie kann ich per Code ein Layout in ein anderes "einsetzen"?

M

mdolphin

Neues Mitglied
0
Was ich eigentlich erreichen wollte: Die gleiche Funktioinalität wie bei TabWidgets, nur dass die Navigation senkrecht an der linken Bildschirmseite sein soll, und sich in Abhängigkeit der Auswahl der Navigation (sozusagen des "tabs") rechts der Bildschirminhalt ändert.

Nachdem TabWidgets nicht vertikal genutzt werden können, habe ich die Navigation dort jetzt über eine ListView realisiert. Rechts daneben ist ein FrameLayout, in das ich den eigentlichen Seiteninhalt per Activity einfügen möchte:

Code:
<LinearLayout android:id="@+id/LinearLayout01"
    android:layout_width="fill_parent" android:layout_height="fill_parent"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal">

    <ListView android:id="@+id/mnuList" android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:layout_weight="1.6"/>
    <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">
            
    </FrameLayout>
</LinearLayout>
Natürlich kann ich dem FrameLayout mittels .addView() neue Elemente hinzufügen. Die Frage ist allerdings ob es auch eine Möglichkeit gibt hier per Code ganze XML-Layouts quasi zu "injizieren"? Die einzelnen darzustellenden Seiten sind nämlich recht komplex, und das möchte ich mir nicht komplett über Java Code antun.

Oder bin ich völlig auf dem Holzweg und es gibt für das geschilderte Vorhaben eine bessere Lösung?

Gruß
Michel
 
Hallo,

mit Hilfe des LayoutInflaters kannst du xml-Layouts instanziieren und dann die View per Java Code in deinen Container (FrameLayout) setzen.

Code:
LayoutInflater inflater = LayoutInflater.from(getContext());
View view = inflater.inflate(R.layout.deinseitenlayout, null);
container.addView(view);

Die inflate Methode hat noch ein paar Überladungen die so aussehen, als ob man die erzeugte View automatisch dem Container hinzufügen lassen kann. Das habe ich aber noch nie ausprobiert.

Ich hoffe, das hilft dir weiter.

Devmil
 

Ähnliche Themen

S
Antworten
9
Aufrufe
1.190
swa00
swa00
OnkelLon
Antworten
13
Aufrufe
1.974
OnkelLon
OnkelLon
B
Antworten
6
Aufrufe
1.049
jogimuc
J
Zurück
Oben Unten