Android:以编程方式折叠并展开CollapsingToolbarLayout

时间:2016-04-26 06:32:08

标签: android

我在CollapsingToolbarLayout中有ImageView和TabLayout(4个标签),现在我想在点击Tabs(2,3,4)时折叠Appbar,对于第一个标签,它应该正常工作(按照滚动)。有没有办法以编程方式展开和折叠Appbar?

但是我看到solution,appBarLayout.setExpanded(false)会折叠Appbar,但它又能够向下拖动。我想在点击标签1 之前阻止AppBar扩展?

2 个答案:

答案 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)
    }