更改工具栏和CollapsingToolbarLayout以编程方式滚动标志
问题描述:
我有一个单独的活动android应用程序与大量的片段。当我显示列表屏幕时,我想使用Toolbar
和app:layout_scrollFlags="scroll|enterAlways"
属性。在细节片段中,我想使用带有图像的CollapsingToolbarLayout
。由于这是一个单一的活动应用程序,我只有一个Toolbar
。是否有可能以编程方式修改我的布局以适应两种情况?更改工具栏和CollapsingToolbarLayout以编程方式滚动标志
答
是的。假设您要从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
我也有这个问题。似乎我忘了调用'setLayoutParams()'方法。感谢你的回答! – Mauker
setScrollFlags(0)正常工作,但当我尝试将其设置为:params.setScrollFlags(AppBarLayout.LayoutParams.SCROLL_FLAG_ENTER_ALWAYS | AppBarLayout.LayoutParams.SCROLL_FLAG_SNAP); //清除所有滚动标志 toolbar.setLayoutParams(params);不起作用.. – iBobb