Le dernier Android Support Library a introduit le DrawerLayout pour implémenter le modèle UX commun où vous faites glisser vers la droite ou la gauche pour afficher un menu de navigation.
Ce que j'aimerais avoir, c'est une verticale DrawerLayout avec la même API, qui peut être tirée vers le bas/haut de la haut/bas de ma mise en page.
Depuis la version 4.2, l'ancien SlidingDrawer est obsolète et je n'ai pas entendu parler d'un nouveau widget qui implémente la même fonctionnalité.
Le DrawerLayout
peut-il être étendu d'une manière ou d'une autre pour implémenter le modèle UX de balayage vertical? Google fournit-il un widget différent pour l'implémenter?
Google Music , par exemple, a quelque chose de très similaire à ce que je cherche à implémenter pour tirer le lecteur.
Nous avons récemment implémenté cela dans l'application Umano et open source: https://github.com/umano/AndroidSlidingUpPanel
Prendre plaisir.
La bibliothèque de support Android Android a désormais le comportement des feuilles inférieures pour ce faire.
Consultez ce lien pour plus d'informations https://material.google.com/components/bottom-sheets.html
De nos jours, il est plus logique d'utiliser le BottomSheetBehavior
que vous pouvez trouver plus d'informations sur la façon de le configurer sur https://code.tutsplus.com/articles/how-to-use-bottom -sheets-with-the-design-support-library - cms-26031
Fondamentalement, vous devez définir votre contenu principal et votre contenu coulissant. Le BottomSheetBehavior
ne fonctionnerait que pour les panneaux que vous faites glisser de bas en haut.
Il a une configuration assez simple et le BottomSheetBehavior
pourrait même fonctionner hors de la boîte. Uniquement en écrivant un Android.support.design.widget.CoordinatorLayout
mise en page, avec une autre vue à l'intérieur (avec même wrap_content
comme valeur dans le layout_height
paramètre), par exemple un LinearLayout
comme celui-ci:
<Android.support.design.widget.CoordinatorLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
xmlns:app="http://schemas.Android.com/apk/res-auto"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:fitsSystemWindows="true">
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:orientation="vertical"
app:behavior_hideable="true"
app:behavior_peekHeight="56dp"
app:layout_behavior="Android.support.design.widget.BottomSheetBehavior">
<!-- Your content goes here -->
</LinearLayout>
</Android.support.design.widget.CoordinatorLayout>
Dans mon cas, je gonfle cette disposition dans un Fragment
et je l'ajoute au Activity
où vous souhaitez activer le SlidingSheetBehavior
.