Подтвердить что ты не робот

Скрыть/Показать панель инструментов программно на CoordinatorLayout

Когда я просматриваю свой RecycleView ToolBar скрыть или показать (с анимацией). введите описание изображения здесь

Как я могу вернуться ToolBar обратно программно?

4b9b3361

Ответ 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();