Простой вопрос, но я не могу найти ответ. Как я могу свернуть или расширить CollapsingToolbarLayout
программно?
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
Простой вопрос, но я не могу найти ответ. Как я могу свернуть или расширить CollapsingToolbarLayout
программно?
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
Ответы:
Используя библиотеку поддержки v23, вы можете позвонить
appBarLayout.setExpanded(true/false)
.Дальнейшее чтение: AppBarLayout.setExpanded (логическое)
источник
Я использую этот код для сворачивания панели инструментов. До сих пор не могу найти способ расширить его.
Редактировать 1: та же функция с отрицательной скоростью Y,
но панель инструментов не развернута на 100%и значение false для последнего параметра должно работатьРедактировать 2: этот код для меня
Постараюсь реализовать поведение самостоятельно.
источник
onNestedFling
вfalse
.onNestedFling
прежде чем установить фрагмент. После установки фрагмента я смог успешно вызвать метод.Вы можете определить, насколько он расширяется или сворачивается с вашим пользовательским аниматором. Просто используйте
setTopAndBottomOffset(int)
.Вот пример:
источник
( -900 )
для установки,valueAnimator.setIntValues
- ( appBar.getTotalScrollRange() )
Я написал небольшое расширение для
AppBarLayout
. Это позволяет расширять и сворачиватьCollapsibleToolbarLayout
как с, так и без анимации. Кажется, делает это совершенно правильно.Не стесняйтесь попробовать это.
Просто используйте его вместо своего
AppBarLayout
, и вы можете вызывать методы, отвечающие за расширение или свертываниеCollapsingToolbarLayout
.Он работает точно так, как и ожидалось в моем проекте, но вам может понадобиться настроить значения fling / scroll в
perform...
методах (особенно вperformExpandingWithAnimation()
), чтобы они идеально подходили к вашемуCollapsibleToolbarLayout
.источник
setExpanded
вAppBarLayout
.Используйте,
mAppBarLayout.setExpanded(true)
чтобы развернуть панель инструментов и использовать,mAppBarLayout.setExpanded(false)
чтобы свернуть панель инструментов.Если вы хотите программно изменить высоту CollapsingToolbarLayout, просто используйте
mAppBarLayout.setLayoutParams(params)
;Expand:
Collapse:
источник
для тех, кто хочет работать с onNestedPreScroll и получить ошибку, как я. я получаю NullPointerException в onCreate без этой строки
и не работает должным образом с этим. но я работаю над этой проблемой
в onCreate:
и...
источник
Попробуй это...
расширять
Перезвонить
источник
Это может помочь расширить или свернуть:
источник
я использую это
источник
Чтобы развернуть / свернуть AppBarLayout программно:
источник