@@ -63,19 +63,22 @@ interface STATE {
63
63
private boolean mEnableTextInCenterSaved ;
64
64
private int [] mRootViewSizeSaved = new int []{0 , 0 };
65
65
66
- private boolean disableClickOnLoading ; //Loading中禁用点击
67
- private boolean enableShrink ; //是否开启收缩动画
66
+
67
+ //Arr
68
+ private boolean disableClickOnLoading ; //Loading中禁用点击, 默认开启
69
+ private boolean enableShrink ; //是否开启收缩动画, 默认开启
70
+ private boolean restoreTextWhenEnd ; //当结束时是否恢复文字, 默认开启
68
71
private ValueAnimator mShrinkAnimator ;
69
- private int mShrinkDuration ;
72
+ private int mShrinkDuration ; //收缩和恢复的时间, 默认450ms
70
73
private CircularProgressDrawable mLoadingDrawable ;
71
74
private OnLoadingListener mOnLoadingListener ;
72
75
private EndDrawable mEndDrawable ;
73
76
private int mLoadingSize ;
74
77
private int mLoadingPosition ;
75
78
76
- private boolean isSizeChanging ; //当前布局尺寸正发生改变
77
- private boolean nextShrinkReverse ; //下一步是否是恢复动画
78
- private boolean isCancel ; //是取消当前动画
79
+ private boolean isSizeChanging ; //当前布局尺寸正发生改变
80
+ private boolean nextShrinkReverse ; //下一步是否是恢复动画
81
+ private boolean isCancel ; //是取消当前动画
79
82
private boolean isFail ;
80
83
81
84
@@ -100,6 +103,7 @@ private void init(Context context, AttributeSet attrs) {
100
103
TypedArray array = context .obtainStyledAttributes (attrs , R .styleable .LoadingButton );
101
104
enableShrink = array .getBoolean (R .styleable .LoadingButton_enableShrink , true );
102
105
disableClickOnLoading = array .getBoolean (R .styleable .LoadingButton_disableClickOnLoading , true );
106
+ restoreTextWhenEnd = array .getBoolean (R .styleable .LoadingButton_restoreTextWhenEnd , true );
103
107
mShrinkDuration = array .getInt (R .styleable .LoadingButton_shrinkDuration , 450 );
104
108
int loadingDrawableSize = array .getDimensionPixelSize (R .styleable .LoadingButton_loadingEndDrawableSize , (int ) (enableShrink ? getTextSize () * 2 : getTextSize ()));
105
109
int loadingDrawableColor = array .getColor (R .styleable .LoadingButton_loadingDrawableColor , getTextColors ().getDefaultColor ());
@@ -241,7 +245,8 @@ private void saveStatus() {
241
245
* 恢复保存的状态
242
246
*/
243
247
private void restoreStatus () {
244
- setText (mTextSaved );
248
+ if (restoreTextWhenEnd )
249
+ setText (mTextSaved );
245
250
setCompoundDrawablePadding (mDrawablePaddingSaved );
246
251
setCompoundDrawablesRelative (mDrawablesSaved [POSITION .START ], mDrawablesSaved [POSITION .TOP ], mDrawablesSaved [POSITION .END ], mDrawablesSaved [POSITION .BOTTOM ]);
247
252
setEnableTextInCenter (mEnableTextInCenterSaved );
@@ -262,16 +267,14 @@ public void onLayoutChange(View v, int left, int top, int right, int bottom, int
262
267
263
268
264
269
/**
265
- * 如果disableClickOnLoading==true,点击会无效
270
+ * 如果disableClickOnLoading==true,且不是闲置状态, 点击会无效
266
271
*/
267
272
@ SuppressLint ("ClickableViewAccessibility" )
268
273
@ Override
269
274
public boolean onTouchEvent (MotionEvent event ) {
270
- if (event .getAction () == MotionEvent .ACTION_UP ) {
271
- //disable click
272
- if (disableClickOnLoading && curStatus != STATE .IDE )
273
- return true ;
274
- }
275
+ //disable click
276
+ if (disableClickOnLoading && curStatus != STATE .IDE )
277
+ return true ;
275
278
return super .onTouchEvent (event );
276
279
}
277
280
0 commit comments