2016-08-29 1 views
0

Ich verwende https://github.com/bmelnychuk/AndroidTreeView, um ein baumbasiertes Menü anzuzeigen. Ich vermisse sicherlich etwas, das sehr einfach ist und ich brauche ein anderes Auge, um meinen Fehler zu überprüfen. Gemäß der Bibliothek erstellen wir eine Ansicht dynamisch (im Grunde eine Scrollansicht) und fügen sie als Kind einem RelativeLayout hinzu. Unten ist mein Layout XMLHinzufügen von Kindansicht zu RelativeLayout

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <Button 
     android:id="@+id/reload_menu" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="re load menu" /> 

    <RelativeLayout 
     android:id="@+id/container" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/reload_menu"></RelativeLayout> 

</RelativeLayout> 

Und hier ist, wie ich meine Wurzel

AndroidTreeView tView = new AndroidTreeView(getApplicationContext(), root); 

    RelativeLayout container = (RelativeLayout) findViewById(R.id.container); 
    container.addView(tView.getView()); 

Auch zu diesem RelativeLayout

bin Hinzufügen obwohl diese Codezeile ohne jede Ausnahme ausführt, ich sehe die treeview nicht angezeigt werden . Ich habe auch tView.getView() überprüft und es sieht vollkommen in Ordnung. Es ist ein Scrollview. Kann mir bitte jemand helfen?

Antwort

2

Wenn Ihre Ansicht nur eine untergeordnete Ansicht enthält, ist die Verwendung von RelativeLayout nicht erforderlich. Verwenden Sie stattdessen FrameLayout.

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<Button 
    android:id="@+id/reload_menu" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="re load menu" /> 

<FrameLayout 
    android:id="@+id/container" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_below="@id/reload_menu"></FrameLayout> 

</RelativeLayout> 

I layout_height auf match_parent ändern, wenn Ihr Schaltfläche android:layout_below="@id/reload_menu" oben FrameLayout dann gesetzt zusätzliches Attribut sein sollte, wird es auch mit match_parent Attribut arbeiten. Dein Hauptproblem war, dass ich match_content unter layout_height ansehe, weil die Bildlaufansicht eine gewisse Höhe haben muss, um sich daran anzupassen.

Versuchen Sie auch aktuellen Kontext (Activity-Code) verwenden:

AndroidTreeView tView = new AndroidTreeView(this, root); //this is Activity 
+0

Dank für meine Fragen Zeit nehmen, in dem Hinweis auf. Ich würde gerne ein wenig mehr verstehen. Ich habe jetzt die Höhe zu match_parent geändert. In Ihrem Code versuchen Sie die Höhe und Breite des Kinds (in diesem Fall tView) einzustellen. Da AndroidTreeView Teil der Bibliothek ist, hat es keine Implementierung von setLayoutParams, die ich verwenden kann. Irgendwelche anderen Ideen, die ich verwenden kann, um das Layout nach dem Hinzufügen des Kindes zu aktualisieren? –

+0

Wenn das nicht funktioniert, versuchen Sie vielleicht getApplicationContext() zu ändern, wenn der Code aktiv ist. –

Verwandte Themen