Skip to content

Commit 3a67789

Browse files
committed
1、fix disableClickOnLoading function bug
2、add restoreTextWhenEnd
1 parent b247a81 commit 3a67789

File tree

5 files changed

+42
-17
lines changed

5 files changed

+42
-17
lines changed

.idea/gradle.xml

Lines changed: 4 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Loadingbutton/src/main/java/com/flod/loadingbutton/LoadingButton.java

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Loadingbutton/src/main/res/values/attrs.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
<declare-styleable name="LoadingButton">
1717
<attr name="enableShrink" format="boolean" />
1818
<attr name="disableClickOnLoading" format="boolean" />
19+
<attr name="restoreTextWhenEnd" format="boolean" />
1920
<attr name="shrinkDuration" format="integer" />
2021
<attr name="loadingEndDrawableSize" format="dimension" />
2122
<attr name="loadingDrawableColor" format="color" />
Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,21 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<shape xmlns:android="http://schemas.android.com/apk/res/android">
3-
<corners android:radius="50dp" />
4-
<solid android:color="@android:color/holo_red_light" />
5-
</shape>
2+
3+
<selector xmlns:android="http://schemas.android.com/apk/res/android">
4+
5+
<item android:state_pressed="false">
6+
<shape>
7+
<corners android:radius="50dp" />
8+
<solid android:color="@android:color/holo_red_light" />
9+
</shape>
10+
11+
</item>
12+
<item android:state_pressed="true">
13+
<shape>
14+
<corners android:radius="50dp" />
15+
<solid android:color="@android:color/holo_red_dark" />
16+
</shape>
17+
18+
</item>
19+
20+
</selector>
21+

app/src/main/res/layout/activity_main.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
android:text="Submit"
2828
android:textColor="@android:color/white"
2929
android:textSize="14sp"
30+
app:restoreTextWhenEnd="false"
3031
app:enableShrink="true"
3132
app:endCompleteDrawable="@drawable/ic_successful"
3233
app:endFailDrawable="@drawable/ic_fail"

0 commit comments

Comments
 (0)