@@ -63,19 +63,22 @@ interface STATE {
6363 private boolean mEnableTextInCenterSaved ;
6464 private int [] mRootViewSizeSaved = new int []{0 , 0 };
6565
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 ; //当结束时是否恢复文字, 默认开启
6871 private ValueAnimator mShrinkAnimator ;
69- private int mShrinkDuration ;
72+ private int mShrinkDuration ; //收缩和恢复的时间, 默认450ms
7073 private CircularProgressDrawable mLoadingDrawable ;
7174 private OnLoadingListener mOnLoadingListener ;
7275 private EndDrawable mEndDrawable ;
7376 private int mLoadingSize ;
7477 private int mLoadingPosition ;
7578
76- private boolean isSizeChanging ; //当前布局尺寸正发生改变
77- private boolean nextShrinkReverse ; //下一步是否是恢复动画
78- private boolean isCancel ; //是取消当前动画
79+ private boolean isSizeChanging ; //当前布局尺寸正发生改变
80+ private boolean nextShrinkReverse ; //下一步是否是恢复动画
81+ private boolean isCancel ; //是取消当前动画
7982 private boolean isFail ;
8083
8184
@@ -100,6 +103,7 @@ private void init(Context context, AttributeSet attrs) {
100103 TypedArray array = context .obtainStyledAttributes (attrs , R .styleable .LoadingButton );
101104 enableShrink = array .getBoolean (R .styleable .LoadingButton_enableShrink , true );
102105 disableClickOnLoading = array .getBoolean (R .styleable .LoadingButton_disableClickOnLoading , true );
106+ restoreTextWhenEnd = array .getBoolean (R .styleable .LoadingButton_restoreTextWhenEnd , true );
103107 mShrinkDuration = array .getInt (R .styleable .LoadingButton_shrinkDuration , 450 );
104108 int loadingDrawableSize = array .getDimensionPixelSize (R .styleable .LoadingButton_loadingEndDrawableSize , (int ) (enableShrink ? getTextSize () * 2 : getTextSize ()));
105109 int loadingDrawableColor = array .getColor (R .styleable .LoadingButton_loadingDrawableColor , getTextColors ().getDefaultColor ());
@@ -241,7 +245,8 @@ private void saveStatus() {
241245 * 恢复保存的状态
242246 */
243247 private void restoreStatus () {
244- setText (mTextSaved );
248+ if (restoreTextWhenEnd )
249+ setText (mTextSaved );
245250 setCompoundDrawablePadding (mDrawablePaddingSaved );
246251 setCompoundDrawablesRelative (mDrawablesSaved [POSITION .START ], mDrawablesSaved [POSITION .TOP ], mDrawablesSaved [POSITION .END ], mDrawablesSaved [POSITION .BOTTOM ]);
247252 setEnableTextInCenter (mEnableTextInCenterSaved );
@@ -262,16 +267,14 @@ public void onLayoutChange(View v, int left, int top, int right, int bottom, int
262267
263268
264269 /**
265- * 如果disableClickOnLoading==true,点击会无效
270+ * 如果disableClickOnLoading==true,且不是闲置状态, 点击会无效
266271 */
267272 @ SuppressLint ("ClickableViewAccessibility" )
268273 @ Override
269274 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 ;
275278 return super .onTouchEvent (event );
276279 }
277280
0 commit comments