package com.doumee.keyCabinet.ui.view; import android.content.Context; import android.graphics.drawable.BitmapDrawable; import android.util.AttributeSet; import android.view.Gravity; import android.view.View; import android.widget.LinearLayout; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.doumee.keyCabinet.R; import com.scwang.smart.refresh.layout.api.RefreshHeader; import com.scwang.smart.refresh.layout.api.RefreshKernel; import com.scwang.smart.refresh.layout.api.RefreshLayout; import com.scwang.smart.refresh.layout.constant.RefreshState; import com.scwang.smart.refresh.layout.constant.SpinnerStyle; import com.doumee.lib_coremodel.util.RxTimerUtil; public class MyRefreshHeader extends LinearLayout implements RefreshHeader { private TextView textView; private boolean mSrlPrimaryColor; private RxTimerUtil rxTimerUtil; public MyRefreshHeader(Context context) { this(context,null); } public MyRefreshHeader(Context context, @Nullable AttributeSet attrs) { super(context, attrs); textView=new TextView(context); textView.setTextColor(0xFF666666); textView.setText(context.getString(R.string.refreshing)); addView(textView); setGravity(Gravity.CENTER); } @NonNull @Override public View getView() { return this; } @NonNull @Override public SpinnerStyle getSpinnerStyle() { return SpinnerStyle.Translate; } @Override public void setPrimaryColors(int... colors) { //srlPrimaryColor if(colors.length>0){ if(!mSrlPrimaryColor&&!(getBackground() instanceof BitmapDrawable)){ setBackgroundColor(colors[0]); mSrlPrimaryColor=true; } } } @Override public void onInitialized(@NonNull RefreshKernel kernel, int height, int maxDragHeight) { } @Override public void onMoving(boolean isDragging, float percent, int offset, int height, int maxDragHeight) { } @Override public void onReleased(@NonNull RefreshLayout refreshLayout, int height, int maxDragHeight) { } @Override public void onStartAnimator(@NonNull RefreshLayout refreshLayout, int height, int maxDragHeight) { } @Override public int onFinish(@NonNull RefreshLayout refreshLayout, boolean success) { if(rxTimerUtil==null){ rxTimerUtil = new RxTimerUtil(); } rxTimerUtil.timer(200, new RxTimerUtil.IRxNext() { @Override public void doNext(long number) { textView.setVisibility(GONE); } }); return 200; } @Override public void onHorizontalDrag(float percentX, int offsetX, int offsetMax) { } @Override public boolean isSupportHorizontalDrag() { return false; } @Override public void onStateChanged(@NonNull RefreshLayout refreshLayout, @NonNull RefreshState oldState, @NonNull RefreshState newState) { switch (newState) { case None: case PullDownToRefresh: case Refreshing: //anim.start(); textView.setVisibility(VISIBLE); break; case ReleaseToRefresh: break; } } @Override protected void onDetachedFromWindow() { super.onDetachedFromWindow(); if(rxTimerUtil!=null) { rxTimerUtil.cancel(); } } }