1. Mitglieder surfen ohne Werbung auf Android-Hilfe.de! ✔ Jetzt kostenlos Mitglied in unserer Community werden.
  1. mdolphin, 03.12.2010 #1
    mdolphin

    mdolphin Threadstarter Neuer Benutzer

    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
     
  2. devmil, 04.12.2010 #2
    devmil

    devmil Junior Mitglied

    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
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
Wie viele Klassen und Layouts brauche ich für meine App? Android App Entwicklung 05.08.2018
ListView mit eigenem Layout zeigt im Querformat Items doppelt an Android App Entwicklung 24.06.2018
Code-Text erweitern bzw. sinnvoll aufgliedern & optisch verbessern Android App Entwicklung 13.05.2018
Fragen zu all den Layouts Android App Entwicklung 12.02.2018
HorizontalScrollView oberhalb ConstraintLayout positionieren Android App Entwicklung 24.01.2018
Spinner Position der Dropdown Liste Android App Entwicklung 05.01.2018
[ERLEDIGT] Verschiedene Layouts in BottomNavigationActivity verwalten Android App Entwicklung 06.12.2017
[OFFEN] Taschenrechner-Verstehe Code nicht Android App Entwicklung 14.10.2017
Du betrachtest das Thema "Wie kann ich per Code ein Layout in ein anderes "einsetzen"?" im Forum "Android App Entwicklung",
  1. Android-Hilfe.de verwendet Cookies um Inhalte zu personalisieren und dir den bestmöglichen Service zu gewährleisten. Wenn du auf der Seite weitersurfst stimmst du der Cookie-Nutzung zu.  Ich stimme zu.