我在CollapsingToolbarLayout中有ImageView和TabLayout(4个标签),现在我想在点击Tabs(2,3,4)时折叠Appbar,对于第一个标签,它应该正常工作(按照滚动)。有没有办法以编程方式展开和折叠Appbar?
但是我看到solution,appBarLayout.setExpanded(false)会折叠Appbar,但它又能够向下拖动。我想在点击标签1 之前阻止AppBar扩展?
答案 0 :(得分:7)
使用mAppBarLayout.setExpanded(true)
展开Toolbar
并使用mAppBarLayout.setExpanded(false)
折叠Toolbar
。
如果要阻止 CollapsingToolbarLayout 扩展,直到 单击选项卡1 ,然后您应该以编程方式使用
mAppBarLayout.setLayoutParams(params)
进行更改CollapsingToolbarLayout
身高。
折叠:点击Tabs(2,3,4)
时使用
CoordinatorLayout.LayoutParams params =(CoordinatorLayout.LayoutParams) mAppBarLayout.getLayoutParams();
params.height = 3*80; // COLLAPSED_HEIGHT
mAppBarLayout.setLayoutParams(params);
mAppBarLayout.setExpanded(false);
展开:点击Tab 1
时使用
CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) mAppBarLayout.getLayoutParams();
params.height = 3*200; // EXPANDED_HEIGHT
mAppBarLayout.setLayoutParams(params);
mAppBarLayout.setExpanded(true);
希望这会对你有帮助〜
答案 1 :(得分:0)
我有一个小把戏:)
private fun collapseAppbar() {
scrollView.postDelayed(Runnable {
scrollView?.smoothScrollTo(50, 50)
}, 400)
}