Pregunta simple, pero no puedo encontrar una respuesta. ¿Cómo puedo colapsar o expandir CollapsingToolbarLayout
programáticamente?
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
Pregunta simple, pero no puedo encontrar una respuesta. ¿Cómo puedo colapsar o expandir CollapsingToolbarLayout
programáticamente?
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
Respuestas:
Usando Support Library v23, puede llamar
appBarLayout.setExpanded(true/false)
.Lectura adicional: AppBarLayout.setExpanded (boolean)
fuente
Yo uso este código para colapsar la barra de herramientas. Todavía no puedo encontrar una manera de expandirlo.
Edición 1: la misma función con velocidad negativa Y
pero la barra de herramientas no está expandida al 100%y falso para el último parámetro debería funcionarEdición 2: este código hace el truco para mí
Intentaré implementar el comportamiento por mí mismo.
fuente
onNestedFling
afalse
.onNestedFling
antes de configurar el fragmento. Después de configurar el fragmento, podría llamar al método con éxito.Puede definir cuánto se expande o colapsa con su animador personalizado. Solo usa el
setTopAndBottomOffset(int)
.Aquí hay un ejemplo:
fuente
( -900 )
para establecervalueAnimator.setIntValues
La mejor solución es usar- ( appBar.getTotalScrollRange() )
He escrito una pequeña extensión para
AppBarLayout
. Permite la expansión y el colapso deCollapsibleToolbarLayout
ambos con y sin animación. Parece estar haciéndolo bien.Siéntase libre de probarlo.
Simplemente utilícelo en lugar de su
AppBarLayout
, y puede llamar a los métodos responsables de expandir o colapsar elCollapsingToolbarLayout
.Funciona exactamente como se esperaba en mi proyecto, pero es posible que deba ajustar los valores de lanzamiento / desplazamiento en los
perform...
métodos (especialmente enperformExpandingWithAnimation()
) para que se adapten perfectamente a suCollapsibleToolbarLayout
.fuente
setExpanded
método en elAppBarLayout
.Use
mAppBarLayout.setExpanded(true)
para expandir la barra de herramientas y usemAppBarLayout.setExpanded(false)
para contraer la Barra de herramientas.Si desea cambiar la altura de CollapsingToolbarLayout mediante programación, simplemente use
mAppBarLayout.setLayoutParams(params)
;Expandir:
Colapso:
fuente
para aquellos que quieren trabajar con onNestedPreScroll y obtener un error como yo. me sale NullPointerException en onCreate sin esta línea
y no funciona correctamente con esto. pero evito este problema con
en onCreate:
y...
fuente
Prueba esto...
Expandir
Para recordar
fuente
Esto puede ayudar a expandir o colapsar:
fuente
he usado esto
fuente
Para expandir / contraer AppBarLayout mediante programación:
fuente