在此示例中,contentScrim 属性设置了颜色,但我不知道如何控制它何时启动。我想尽快开始颜色过渡。
你能给我一个提示吗?提前致谢。
您必须创建一个扩展类CollapsingToolbarLayout
。像这样的东西(您可能需要调整它以使其完全符合您的需求):
public class CustomCollapsingToolbarLayout extends CollapsingToolbarLayout {
public static interface Listener {
public void onContentScrimAnimationStarted(boolean showing);
}
private Listener mListener;
public CustomCollapsingToolbarLayout(Context context) {
super(context);
}
public CustomCollapsingToolbarLayout(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CustomCollapsingToolbarLayout(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
public void setScrimsShown(boolean shown, boolean animate) {
super.setScrimsShown(shown, animate);
if (animate && mListener != null) {
mListener.onContentScrimAnimationStarted(shown);
}
}
public void setListener(Listener listener) {
mListener = listener;
}
}
只需调用setListener
您的CustomCollapsingToolbarLayout
实例即可。
CustomCollapsingToolbarLayout mToolbarLayout =
(CustomCollapsingToolbarLayout) findViewById(R.id.toolbar_layout);
mToolbarLayout.setListener(new Listener() {
@Override
public void onContentScrimAnimationStarted(boolean showing) {
//do what you want
}
});
编辑(实际上是在回答问题):
修改scrimVisibleHeightTrigger
值(使用 的setScrimVisibleHeightTrigger
方法CollapsingToolbarLayout
)来改变动画的起点。