Android-design-Bibliothek CoordinatorLayout, AppBarLayout und DrawerLayout
Ich bin mit dem Android-design-Bibliothek an API-22. Ich möchte:
- eine Symbolleiste und eine DrawerLayout in dem sich ein RecyclerView
- haben die DrawerLayout werden unterhalb der Symbolleiste, zum Beispiel, wenn die Symbolleiste sichtbar ist, die Schublade, die wichtigsten Inhalte sollten unter ihm, und die (linke) Schublade sollte auch unten es so, dass, wenn es erweitert wird, ist die Symbolleiste noch sichtbar
- haben Symbolleiste scrollen aus dem Bildschirm, wenn die recycler Blick nach unten gescrollt
Ist das überhaupt möglich? Ich Probleme haben, zu heiraten, #2 und #3. So, wie es jetzt ist, dass die Symbolleiste immer über die Schublade, layout, für den ersten Eintrag in den recycler, und die Spitze der linken Schublade als gut. Hier ist mein layout-Datei (unvollständig, zeigt aber in meiner Struktur):
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v4.widget.DrawerLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical"
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"/>
</android.support.v4.widget.DrawerLayout>
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Toolbar
android:layout_width="match_parent"
android:layout_height="?android:attr/actionBarSize"
app:layout_scrollFlags="scroll|enterAlways"/>
</android.support.design.widget.AppBarLayout>
</android.support.design.widget.CoordinatorLayout>
Sieht es aus, wie wenn die RecyclerView app:layout_behavior="@string/appbar_scrolling_view_behavior" - Einstellung hat keine Wirkung, weil, wenn gelöscht, das Verhalten ist das gleiche.
Habe ich versucht, indem ein RelativeLayout als Kind der CoordinatorLayout zu definieren, dass sich die Schublade befindet sich unterhalb der Symbolleiste usw. aber nichts scheint zu funktionieren.
Ist, was ich versuche zu erreichen, möglich, mit der Bibliothek?
InformationsquelleAutor der Frage wujek | 2015-06-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie Folgendes, wenn Sie wollen, um die animation sehen, der das hamburger-Symbol und einem Pfeil. Wenn Sie den oberen Rand (layout_marginTop) für NavigationView es wird unten verschieben.
InformationsquelleAutor der Antwort mtazamaji
Ja! Es ist möglich,.
Wie Sie sehen können, was wichtig ist im Grunde, dass Sie
app:layout_scrollFlags="scroll|enterAlways"
für die Symbolleiste ausblenden, wenn Sie Blättern. DieRecyclerView
am unteren Rand des code-ist das innerhalb derDrawerLayout
die oben, ist das in Ihrer Haupttätigkeit layout.InformationsquelleAutor der Antwort Linxy
Aus der Entwickler' Seite:
Zunächst versuchen Sie, die DrawerLayout als top-level-container (D. H. Eltern-layout). Dann legen Sie die CoordinatorLayout unten und sehen was passiert.
Plus Sie haben nicht Hinzugefügt, die NavigationView. Bitte überprüfen Sie die grundlegenden Anweisungen hier.
InformationsquelleAutor der Antwort TheoK
Versuchen dieses sollte es funktionieren, für mich gearbeitet.
Scrolling-Verhalten festgelegt werden müssen, um die direkten Kind CoordinatorLayout (DrawerLayout). Dies sollte fix your #2#3 Probleme. Und im Falle der Schublade Inhalt enthält recyclerView Symbolleiste wird wieder gescrollt werden aus dem Bildschirm.
InformationsquelleAutor der Antwort Tiko
Seine wurde eine lange Zeit jetzt, aber ich glaube, es hilft noch jemand.
Schublade-Layout muss eine Kind-layout. Laut android-docs es muss FrameLayout, weil die XML-Bestellung impliziert, z-Reihenfolge und die Schublade müssen an der Spitze sein Inhalt. Besuchen Sie den link unten.
Erstellen einer Navigation Schublade
Fügen Sie Ihre AppBarLayout, Symbolleiste, RecyclerView und alle anderen Ansichten in FrameLayout und machen es zu einem Kind der Schublade-Layout. Hoffentlich wird es laufen.
InformationsquelleAutor der Antwort muak