我有一个带有很多片段的单个 Activity android 应用程序。当我显示列表屏幕时,我想使用Toolbar
with the,app:layout_scrollFlags="scroll|enterAlways"
属性。在细节片段中,我想使用CollapsingToolbarLayout
其中的图像。因为它是一个单一的 Activity 应用程序,所以我只有一个Toolbar
. 是否可以以编程方式修改我的布局以适应这两种情况?
问问题
8601 次
3 回答
16
是的。假设您要从 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
于 2015-09-05T23:40:55.420 回答
8
我发现它有效
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);
}
于 2019-11-18T10:06:17.117 回答
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);
}
于 2021-03-17T20:45:40.187 回答