Question simple, mais je ne trouve pas de réponse. Comment puis-je réduire ou développer le CollapsingToolbarLayout
programme par programme?
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
Question simple, mais je ne trouve pas de réponse. Comment puis-je réduire ou développer le CollapsingToolbarLayout
programme par programme?
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
Réponses:
À l'aide de la bibliothèque de support v23, vous pouvez appeler
appBarLayout.setExpanded(true/false)
.Lectures complémentaires: AppBarLayout.setExpanded (booléen)
la source
J'utilise ce code pour réduire la barre d'outils. Je n'arrive toujours pas à trouver un moyen de l'étendre.
Edit 1: La même fonction avec une vitesse négative Y
mais la barre d'outils n'est pas étendue à 100%et false pour le dernier paramètre devrait fonctionnerEdit 2: Ce code fait l'affaire pour moi
Je vais essayer de mettre en œuvre Behavior par moi-même.
la source
onNestedFling
surfalse
.onNestedFling
avant de définir le fragment. Après avoir défini le fragment, je pourrais appeler la méthode avec succès.Vous pouvez définir son expansion ou sa réduction avec votre animateur personnalisé. Utilisez simplement le
setTopAndBottomOffset(int)
.Voici un exemple:
la source
( -900 )
pour définirvalueAnimator.setIntValues
La meilleure solution est celle d'utiliser- ( appBar.getTotalScrollRange() )
J'ai écrit une petite extension sur
AppBarLayout
. Il permet d'agrandir et de réduire lesCollapsibleToolbarLayout
deux avec et sans animation. Il semble bien faire les choses.N'hésitez pas à l'essayer.
Utilisez-le simplement à la place de votre
AppBarLayout
, et vous pouvez appeler des méthodes chargées de développer ou de réduire le fichierCollapsingToolbarLayout
.Cela fonctionne exactement comme prévu dans mon projet, mais vous devrez peut-être modifier les valeurs de fling / scroll dans les
perform...
méthodes (en particulier dansperformExpandingWithAnimation()
) pour qu'elles correspondent parfaitement à votreCollapsibleToolbarLayout
.la source
setExpanded
méthode dans leAppBarLayout
.Utilisez
mAppBarLayout.setExpanded(true)
pour développer la barre d'outils et utilisezmAppBarLayout.setExpanded(false)
pour réduire la barre d'outils.Si vous souhaitez modifier la hauteur de CollapsingToolbarLayout par programme, utilisez simplement
mAppBarLayout.setLayoutParams(params)
;Développer:
Effondrer:
la source
pour ceux qui veulent travailler avec onNestedPreScroll et obtenir une erreur comme moi. j'obtiens NullPointerException dans onCreate sans cette ligne
et ne fonctionne pas correctement avec cela. mais je contourne ce problème avec
dans onCreate:
et...
la source
Essaye ça...
Développer
Se rappeler
la source
Cela peut aider à développer ou réduire:
la source
je l'utilise
la source
Pour développer / réduire AppBarLayout par programme:
la source