| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- package eVVM.apk.widget;
- import android.content.Context;
- import android.support.design.widget.CollapsingToolbarLayout;
- import android.util.AttributeSet;
- /**
- * desc : 支持监听渐变的CollapsingToolbarLayout
- */
- public final class XCollapsingToolbarLayout extends CollapsingToolbarLayout {
- private OnScrimsListener mListener; // 渐变监听
- private boolean isScrimsShown; // 当前渐变状态
- public XCollapsingToolbarLayout(Context context) {
- super(context);
- }
- public XCollapsingToolbarLayout(Context context, AttributeSet attrs) {
- super(context, attrs);
- }
- public XCollapsingToolbarLayout(Context context, AttributeSet attrs, int defStyleAttr) {
- super(context, attrs, defStyleAttr);
- }
- @Override
- public void setScrimsShown(boolean shown, boolean animate) {
- super.setScrimsShown(shown, true);
- // 判断渐变状态是否改变了
- if (isScrimsShown != shown) {
- // 如果是就记录并且回调监听器
- isScrimsShown = shown;
- if (mListener != null) {
- mListener.onScrimsStateChange(isScrimsShown);
- }
- }
- }
- /**
- * 获取当前的渐变状态
- */
- public boolean isScrimsShown() {
- return isScrimsShown;
- }
- /**
- * 设置CollapsingToolbarLayout渐变监听
- */
- public void setOnScrimsListener(OnScrimsListener l) {
- mListener = l;
- }
- /**
- * CollapsingToolbarLayout渐变监听器
- */
- public interface OnScrimsListener {
- /**
- * 渐变状态变化
- *
- * @param shown 渐变开关
- */
- void onScrimsStateChange(boolean shown);
- }
- }
|