Android: 编程方式折叠和展开CollapsingToolbarLayout

5
我有一个ImageView和TabLayout(4个选项卡)在CollapsingToolbarLayout里,现在我想在点击选项卡(2,3,4)时折叠Appbar,并且对于第一个选项卡,它应该像平常一样工作(根据滚动情况)。有没有一种编程方式来展开和折叠Appbar呢?
然而我看到solution,appBarLayout.setExpanded(false)会折叠Appbar,但是它仍然可以被拖动下来。我想要防止AppBar扩展,直到点击选项卡1
1个回答

9

使用 mAppBarLayout.setExpanded(true) 来展开 Toolbar,使用 mAppBarLayout.setExpanded(false) 来折叠 Toolbar

如果您想要在点击 选项卡1 之前阻止 CollapsingToolbarLayout 的展开,则应该通过编程方式使用 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);

展开: 在单击 选项卡1 时使用

CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) mAppBarLayout.getLayoutParams();
params.height = 3*200; // EXPANDED_HEIGHT

mAppBarLayout.setLayoutParams(params);
mAppBarLayout.setExpanded(true);

希望这能帮到您~

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接