我有一个包含大量片段的Activity Android应用程序。当我显示列表屏幕时,我想将Toolbar
与app:layout_scrollFlags="scroll|enterAlways"
属性一起使用。在细节片段中,我想使用带有图像的CollapsingToolbarLayout
。由于它是一个Activity应用程序,因此我只有一个Toolbar
。是否可以通过编程方式修改我的布局以适应这两种情况?
答案 0 :(得分:10)
是。假设您要从CollapsingToolbarLayout片段转到工具栏。
您使用AppBarLayout
;
AppBarLayout.setExpanded(false)
您可以更改滚动标记以满足您的需求。
AppBarLayout.LayoutParams p = (AppBarLayout.LayoutParams) toolbar.getLayoutParams();
p.setScrollFlags(...);
toolbar.setLayoutParams(p);
如果需要,还可以使用CollapsingToolbarLayout。我想它应该是这样的:
collapsingToolbarParams.setScrollFlags(0); //no flags for ctl
toolbarParams.setScrollFlags(SCROLL_FLAG_SCROLL | SCROLL_FLAG_ENTER_ALWAYS); //new flags for toolbar
答案 1 :(得分:0)
我发现它可以正常工作
public void disableToolBarScrolling() {
CollapsingToolbarLayout toolbar = findViewById(R.id.collap_toolbar);
AppBarLayout.LayoutParams params = (AppBarLayout.LayoutParams) toolbar.getLayoutParams();
params.setScrollFlags(0);
}
public void enableToolBarScrolling() {
CollapsingToolbarLayout toolbar = findViewById(R.id.collap_toolbar);
AppBarLayout.LayoutParams params = (AppBarLayout.LayoutParams) toolbar.getLayoutParams();
params.setScrollFlags(SCROLL_FLAG_SCROLL | SCROLL_FLAG_ENTER_ALWAYS);
}
答案 2 :(得分:0)
对我有用。
public void enableToolBarScrolling(CollapsingToolbarLayout toolbar) {
AppBarLayout.LayoutParams params = (AppBarLayout.LayoutParams) toolbar.getLayoutParams();
params.setScrollFlags(SCROLL_FLAG_SCROLL | SCROLL_FLAG_ENTER_ALWAYS);
toolbar.setLayoutParams(params);
}