Je souhaite implémenter le modèle «Espace flexible avec contenu superposé» des techniques de défilement de la conception de matériaux , comme dans cette vidéo :
Ma mise en page XML ressemble maintenant à:
Existe-t-il un moyen simple d’accomplir ceci en utilisant la bibliothèque de conception? Ou dois-je créer un CoordinatorLayout.Behavior personnalisé pour ce faire?
En fait, la superposition de la vue de défilement avec AppBarLayout est une fonctionnalité incluse de la bibliothèque de support de conception Android : vous pouvez utiliser l’atsortingbut app:behavior_overlapTop
sur votre NestedScrollView
(ou toute vue utilisant ScrollingViewBehavior ) pour définir la quantité de chevauchement:
Notez que app:behavior_overlapTop
ne fonctionne que sur les vues ayant l’ app:layout_behavior="@ssortingng/appbar_scrolling_view_behavior"
car c’est le comportement qui utilise l’atsortingbut (et non le View ou le ViewGroup parent, auquel les atsortingbuts s’appliquent généralement), d’où le behavior_
préfixe.
Ou définissez-le par programmation via setOverlayTop () :
NestedScrollView scrollView = ... CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) scrollView.getLayoutParams(); AppBarLayout.ScrollingViewBehavior behavior = (AppBarLayout.ScrollingViewBehavior) params.getBehavior(); behavior.setOverlayTop(128); // Note: in pixels
En plus de la réponse acceptée , appelez setTitleEnabled (false) sur votre CollapsingToolbarLayout pour que le titre rest fixe en haut comme dans l’exemple.
Comme ça:
CollapsingToolbarLayout.setTitleEnabled(false);
ou en l’ajoutant dans XML comme ceci:
app:titleEnabled="false"
Sinon, le titre pourrait disparaître derrière le contenu qui se chevauche, à moins bien sûr que ce soit le comportement que vous souhaitez.