Mit einem DrawerLayout zusammen mit einem ListView
Ich versuche zu schreiben, eine android-app mit listview-von ein paar verschiedene Elemente und auch ein drawerlayout, die Sie ziehen können von der linken Seite des Bildschirms. Hier ist, was ich meine....
Dies ist, was der Haupt-Bildschirm sieht wie folgt aus:
Und hier ist, was Sie die Schublade Menü, was wie folgt aussieht:
Das problem das ich habe ist, dass wenn ich öffnen Sie die seitliche Schublade-Menü-Sache, und Tippen Sie auf eine option, es funktioniert nicht und das Menü schließt sich einfach. Aber ich bin in der Lage zu interagieren mit den wichtigsten listview-Seite. Hier ist, was mein code sieht wie folgt aus:
String[] homeArray = { "Test", "Test", "Test", "Test", "Test", "Test", "Test", "Test", "Test", "Test", "Test", "Test", "Test", "Test", "Test" };
private ListView homeListView;
private ArrayAdapter arrayAdapter;
private DrawerLayout mDrawerLayout;
private ListView mDrawerList;
private ActionBarDrawerToggle mDrawerToggle;
private CharSequence mDrawerTitle;
private CharSequence mTitle;
private String[] mDrawerTitles;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTitle = mDrawerTitle = getTitle();
mDrawerTitles = getResources().getStringArray(R.array.Menu);
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerList = (ListView) findViewById(R.id.left_drawer);
//Set the adapter for the list view
mDrawerList.setAdapter(new ArrayAdapter<String>(this,
R.layout.drawer_list_item, mDrawerTitles));
Und die activity_main.xml:
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_height="match_parent"
android:layout_width="match_parent"
>
<FrameLayout
android:id="@+id/content_frame"
android:layout_height="match_parent"
android:layout_width="match_parent" />
<ListView
android:id="@+id/left_drawer"
android:layout_height="match_parent"
android:layout_width="240dp"
android:layout_gravity="start"
android:choiceMode="singleChoice"
android:divider="@android:color/darker_gray"
android:dividerHeight="1dp"
android:background="#111"
/>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".ListActivity" >
<ListView
android:id="@+id/homeListView"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</ListView>
</LinearLayout>
</android.support.v4.widget.DrawerLayout>
Habe ich das Gefühl, das problem ist in der xml aber ich bin mir nicht sicher.
- Sie posten, um den vollständigen code Ihrer draweractivity.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Poste bitte den vollständigen code, der Ihre Tätigkeit, hält der NavigationDrawer.
Darüber hinaus würde ich dringend empfehlen (und so würde Google), verwenden Sie Fragmente, die für die einzelnen NavigationDrawer Abschnitte ("Einstellungen", "Submit Bug" und "Hilfe" in Ihrem Fall).
Das layout sollte daher wie folgt Aussehen:
Das FrameLayout content_frame ist, wo Ihr Fragment, das hält das ListView-in gehen.
Einfach erstellen Sie eine benutzerdefinierte Fragment (oder verwenden Sie ein ListFragment), enthält die ListView, die Sie in Ihrem Bild und legen Sie es in den "content_frame".
Verwenden Sie diese zu ersetzen Fragmente innerhalb der Inhalts-frame: (wenn Sie schalten Sie Ihren Abschnitt)
Ein Beispiel, wie Sie Ihr Fragment könnte wie folgt Aussehen: YourListFragment.java
Die layout-Datei "list_fragment.xml" einfach enthält alles, was layout-Komponenten, die Sie wollen. Zum Beispiel ein ListView. Die Initialisierung füllen des ListView innerhalb der Fragmente, die onCreateView () - Methode.
Alle von Googles Beispiel, wie man einen NavigationDrawer: