Ajouter un contrôle ListView ou RecyclerView à nouveau la fenêtre des éléments
Je suis en utilisant le nouveau La fenêtre des éléments de révision 22.2.0 de la bibliothèque de prise en charge par Google. Il fonctionne parfaitement bien pour générer une navigation tiroirs remplis à l'aide d'un menu res.
Je me demandais est-il possible d'ajouter un contrôle ListView ou RecyclerView à la navigation tiroir de sorte qu'il peut être rempli à l'aide de ma coutume adaptateur de code, ce qui permet une plus grande flexibilité que les ressources de menu.
Ici est mon XML:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context=".MainActivity">
<FrameLayout
android:id="@+id/content_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include layout="@layout/main_toolbar" />
</FrameLayout>
<android.support.design.widget.NavigationView
android:id="@+id/navigation_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
app:headerLayout="@layout/navigation_drawer_header"
app:menu="@menu/menu_navigation_drawer" />
</android.support.v4.widget.DrawerLayout>
Où, dans mon XML aurais-je ajouter de la liste ou RecyclerView?
MODIFIER
Comme Basant par la suggestion, je imbriquée un ListView dans la la fenêtre des éléments. Vous perdez la capacité de gonfler à partir d'un menu res (pour autant que je sais), mais il réussit à ce que je veux faire. L'en-tête XML est inchangé, il est juste inclus dans le XML.
Nouveau code:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
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:fitsSystemWindows="true"
tools:context=".MainActivity">
<FrameLayout
android:id="@+id/content_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include layout="@layout/main_toolbar" />
</FrameLayout>
<android.support.design.widget.NavigationView
android:id="@+id/navigation_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<include
android:id="@+id/navigation_drawer_header_include"
layout="@layout/navigation_drawer_header" />
<ListView
android:id="@+id/navigation_drawer_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/navigation_drawer_header_include"/>
</RelativeLayout>
</android.support.design.widget.NavigationView>
</android.support.v4.widget.DrawerLayout>
OriginalL'auteur nabir | 2015-06-22
Vous devez vous connecter pour publier un commentaire.
Vous pouvez simplement nid le
ListView
ouRecyclerView
à l'intérieur de laNavigationView
.REMARQUE: Gardez à l'esprit que si vous utilisez une ListView à l'intérieur, vous ne pouvez pas utiliser la fenêtre des éléments d'en-tête. Vous aurez à utiliser la vue d'en-tête de la liste que vous ajoutez. N'oubliez pas de retirer le
app:menu
etapp:header
champs.Je pense que vous ne devriez pas utiliser le NavigationMenu dans ce cas. Il suffit d'utiliser une ListView ou une disposition plus complexe si vous avez besoin, à la place d'un NavigationMenu. Qui vous donnera plus de flexibilité.
La raison pour laquelle je veux utiliser la fenêtre des éléments est due à construit dans de canevas de manipulation afin de lui donner plus de matière regardez, j'ai appliqué votre suggestion et il semble fonctionner. Je mettrai à jour mon post pour montrer le nouveau code.
Découvrez la accepté de réponse ici: stackoverflow.com/questions/26745300/...
J'étais auparavant à l'aide, mais la nouvelle la fenêtre des éléments qui a construit dans et je préfère utiliser le nouveau point de vue, car il fait partie de la bibliothèque.
OriginalL'auteur Basant Singh
Si vous souhaitez l'ajout de points de vue à l'intérieur de la la fenêtre des éléments que vous pouvez faire quelque chose comme cela. De cette façon, vous n'avez pas de restriction de l'ajout d'en-Tête sur votre NavigtionView avec ListView.
Que ressembler à quelque chose comme ceci
oui, vous pouvez les mettre dans des linéaires mise en page avec une orientation verticale, puis placez la dans le scrollview avec le paramètre fillViewPort = true
Il a essayé, mais autant que je sache (rappelez-vous) quand je suis à l'ouverture de la navigation tiroir contenant recycleur de vue au lieu de listview la vue de ne pas afficher l'en-tête plutôt que c'était un défilement vers le bas pour recycler de vue. @deadfish
avez-vous ajouter un en-tête au-dessus de la recyclerview à l'intérieur de la fenêtre des éléments
semble que cela fonctionne pour moi
OriginalL'auteur redblood
En réponse à Shubham commentaire
Je l'ai résolu en mettant le
LinearLayout
à l'intérieur d'unNestedScrollView
. Maintenant, il défile correctement avec l'en-tête.OriginalL'auteur IsaiahJ
OriginalL'auteur Mahendran Candy