@@ -29,6 +29,10 @@ public class DefaultHeader extends LinearLayout implements RefreshHeader {
2929 private PathsView mArrowView ;//下拉箭头
3030 private ImageView mProgressView ;//刷新动画视图
3131 private ProgressDrawable mProgressDrawable ;//刷新动画
32+ protected RefreshKernel mRefreshKernel ;
33+ protected int mBackgroundColor ;
34+ protected int mAccentColor ;
35+
3236 public DefaultHeader (Context context ) {
3337 super (context );
3438 this .initView (context );
@@ -45,7 +49,6 @@ public DefaultHeader(Context context, @Nullable AttributeSet attrs, int defStyle
4549 }
4650
4751
48-
4952 private void initView (Context context ) {
5053 setGravity (Gravity .CENTER );
5154 mHeaderText = new TextView (context );
@@ -62,28 +65,33 @@ private void initView(Context context) {
6265 addView (mHeaderText , LayoutParams .WRAP_CONTENT , LayoutParams .WRAP_CONTENT );
6366 setMinimumHeight (DensityUtil .dp2px (60 ));
6467 }
68+
6569 @ NonNull
6670 public View getView () {
6771 return this ;//真实的视图就是自己,不能返回null
6872 }
73+
6974 @ Override
7075 public SpinnerStyle getSpinnerStyle () {
7176 return SpinnerStyle .Translate ;//指定为平移,不能null
7277 }
78+
7379 @ Override
7480 public void onStartAnimator (RefreshLayout layout , int headHeight , int extendHeight ) {
7581 mProgressDrawable .start ();//开始动画
7682 }
83+
7784 @ Override
7885 public int onFinish (RefreshLayout layout , boolean success ) {
7986 mProgressDrawable .stop ();//停止动画
80- if (success ){
87+ if (success ) {
8188 mHeaderText .setText ("刷新完成" );
8289 } else {
8390 mHeaderText .setText ("刷新失败" );
8491 }
8592 return 500 ;//延迟500毫秒之后再弹回
8693 }
94+
8795 @ Override
8896 public void onStateChanged (RefreshLayout refreshLayout , RefreshState oldState , RefreshState newState ) {
8997 switch (newState ) {
@@ -105,19 +113,27 @@ public void onStateChanged(RefreshLayout refreshLayout, RefreshState oldState, R
105113 break ;
106114 }
107115 }
116+
108117 @ Override
109118 public boolean isSupportHorizontalDrag () {
110119 return false ;
111120 }
121+
112122 @ Override
113123 public void onInitialized (RefreshKernel kernel , int height , int extendHeight ) {
124+ mRefreshKernel = kernel ;
125+ mRefreshKernel .requestDrawBackgroundForHeader (mBackgroundColor );
126+
114127 }
128+
115129 @ Override
116130 public void onHorizontalDrag (float percentX , int offsetX , int offsetMax ) {
117131 }
132+
118133 @ Override
119134 public void onPulling (float percent , int offset , int headHeight , int extendHeight ) {
120135 }
136+
121137 @ Override
122138 public void onReleasing (float percent , int offset , int headHeight , int extendHeight ) {
123139 }
@@ -128,6 +144,26 @@ public void onReleased(RefreshLayout refreshLayout, int height, int extendHeight
128144 }
129145
130146 @ Override
131- public void setPrimaryColors (@ ColorInt int ... colors ){
147+ public void setPrimaryColors (@ ColorInt int ... colors ) {
148+ }
149+
150+ public DefaultHeader setPrimaryColor (@ ColorInt int primaryColor ) {
151+ mBackgroundColor = primaryColor ;
152+ if (mRefreshKernel != null ) {
153+ mRefreshKernel .requestDrawBackgroundForHeader (primaryColor );
154+ }
155+ return this ;
132156 }
157+ public DefaultHeader setAccentColor (int accentColor ){
158+ mAccentColor =accentColor ;
159+ if (mArrowView !=null ){
160+ mArrowView .parserColors (accentColor );
161+ }
162+ if (mProgressDrawable !=null ) {
163+ mProgressDrawable .setColor (accentColor );
164+ }
165+ mHeaderText .setTextColor (accentColor );
166+ return this ;
167+ }
168+
133169}
0 commit comments