0

在此示例中,contentScrim 属性设置了颜色,但我不知道如何控制它何时启动。我想尽快开始颜色过渡。

contentScrim 示例

你能给我一个提示吗?提前致谢。

4

1 回答 1

2

您必须创建一个扩展类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)来改变动画的起点。

于 2015-11-14T09:36:19.150 回答