Скрыть/Показать панель инструментов программно на CoordinatorLayout
Когда я просматриваю свой RecycleView
ToolBar
скрыть или показать (с анимацией).
![введите описание изображения здесь]()
Как я могу вернуться ToolBar
обратно программно?
Ответы
Ответ 1
Если ваша панель инструментов находится внутри AppBarLayout, которая, вероятно, находится внутри вашего координатораLayout, тогда что-то вроде этого должно работать.
AppBarLayout appBarLayout = (AppBarLayout)findViewById(R.id.appBar);
appBarLayout.setExpanded(true, true);
Или свернуть его
AppBarLayout appBarLayout = (AppBarLayout)findViewById(R.id.appBar);
appBarLayout.setExpanded(false, true);
Вот определение
setExpanded(boolean expanded, boolean animate)
Обратите внимание, что этот метод доступен из v23 библиотеки поддержки, вот ссылка для справки, главное отметить " Как и в случае с Прокрутка AppBarLayout, этот метод основан на том, что этот макет является прямым дочерним элементом CoordinatorLayout." Надеюсь, что это поможет!
Ответ 2
Это то, что вы ищете?
Toolbar toolbar = findViewById(R.id.toolbar); // or however you need to do it for your code
AppBarLayout.LayoutParams params = (AppBarLayout.LayoutParams) toolbar.getLayoutParams();
params.setScrollFlags(0); // clear all scroll flags
link: Как включить/отключить прокрутку панели инструментов программно при использовании библиотеки поддержки дизайна
Чтобы скрыть панель инструментов, вы можете просто сделать что-то вроде этого:
toolbar.animate().translationY(-toolbar.getBottom()).setInterpolator(new AccelerateInterpolator()).start();
Если вы хотите снова показать его, вы вызываете:
toolbar.animate().translationY(0).setInterpolator(new DecelerateInterpolator()).start();