1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung findest Du hier.
  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
[Offen] Android Layout funktioniert nicht Android App Entwicklung 08.09.2017
[OFFEN] Bild per Intent an ListView übergeben und anzeigen Android App Entwicklung 13.08.2017
[ERLEDIGT] Auffangen von nativen C Exeptions in Java Code? Android App Entwicklung 08.08.2017
[ERLEDIGT] Android Studio Erste App-Programmierung Android App Entwicklung 02.08.2017
[ERLEDIGT] Daten/Code meiner App speichern? Android App Entwicklung 27.07.2017
[ERLEDIGT] Android Studio - Buttons zu bestimmten Punkten per klick bewegen lassen Android App Entwicklung 20.07.2017
[ERLEDIGT] Hilfe bei Fehler in Quellcode benötigt Android App Entwicklung 23.06.2017
[OFFEN] Android Studio - Code Style Android App Entwicklung 08.06.2017
[ERLEDIGT] Von SPP seriell per Bluetooth lesen Android App Entwicklung 26.04.2017
[OFFEN] Klick auf Marker soll ein zweites kleineres Layout anzeigen, Map soll trotzdem noch scrollbar (verwendbar) sein Android App Entwicklung 04.04.2017
Du betrachtest das Thema "Wie kann ich per Code ein Layout in ein anderes "einsetzen"?" im Forum "Android App Entwicklung",