7

我有一个单独的活动android应用程序与大量的片段。当我显示列表屏幕时,我想使用Toolbarapp:layout_scrollFlags="scroll|enterAlways"属性。在细节片段中,我想使用带有图像的CollapsingToolbarLayout。由于这是一个单一的活动应用程序,我只有一个Toolbar。是否有可能以编程方式修改我的布局以适应两种情况?更改工具栏和CollapsingToolbarLayout以编程方式滚动标志

回答

9

是的。假设您要从CollapsingToolbarLayout片段转到工具栏一。

  1. 你崩溃您AppBarLayout使用AppBarLayout.setExpanded(false);

  2. 您更改滚动标志以满足您的需求。

    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 
    
+0

我也有这个问题。似乎我忘了调用'setLayoutParams()'方法。感谢你的回答! – Mauker

+1

setScrollFlags(0)正常工作,但当我尝试将其设置为:params.setScrollFlags(AppBarLayout.LayoutParams.SCROLL_FLAG_ENTER_ALWAYS | AppBarLayout.LayoutParams.SCROLL_FLAG_SNAP); //清除所有滚动标志 toolbar.setLayoutParams(params);不起作用.. – iBobb

相关问题