|
1 | 1 | # LoadingButton
|
2 | 2 |
|
3 |
| - 一个加载功能的按钮控件,支持按钮收缩,完成和失败的图标文字切换 |
| 3 | + 一个小巧灵活的带加载功能的按钮控件,继承自[DrawableTextView]() |
4 | 4 |
|
5 |
| -### 特性 |
| 5 | +## 特性 |
6 | 6 | * 支持按钮收缩
|
7 | 7 | * 支持加载取消,加载完成和失败图标替换
|
8 | 8 | * 可设置加载动画颜色、大小、位置
|
9 | 9 |
|
10 |
| -### Demo |
| 10 | +## Demo |
11 | 11 | [点我下载](https://github.com/FlodCoding/LoadingButton/raw/master/app/build/outputs/apk/debug/app-debug.apk)
|
12 | 12 |
|
| 13 | + |
| 14 | + |
| 15 | +### Demo截图 |
13 | 16 |     
|
14 | 17 |
|
15 |
| -### 属性说明 |
| 18 | +## 基本用法 |
| 19 | + |
| 20 | +### XML |
| 21 | +``` |
| 22 | +<com.flod.loadingbutton.LoadingButton |
| 23 | + android:layout_width="match_parent" |
| 24 | + android:layout_height="wrap_content" |
| 25 | + android:background="@drawable/selector_btn" |
| 26 | + android:drawablePadding="10dp" |
| 27 | + android:gravity="center" |
| 28 | + android:padding="8dp" |
| 29 | + android:text="Submit" |
| 30 | + app:endCompleteDrawable="@drawable/ic_successful" |
| 31 | + app:endFailDrawable="@drawable/ic_fail" /> |
| 32 | +``` |
| 33 | +### Code |
| 34 | +``` |
| 35 | +loadingBtn.setEnableShrink(true) |
| 36 | + .setDisableClickOnLoading(true) |
| 37 | + .setShrinkDuration(450) |
| 38 | + .setLoadingColor(loadingBtn.getTextColors().getDefaultColor()) |
| 39 | + .setLoadingStrokeWidth((int) (loadingBtn.getTextSize() * 0.14f)) |
| 40 | + .setLoadingPosition(DrawableTextView.POSITION.START) |
| 41 | + .setCompleteDrawable(R.drawable.ic_successful) |
| 42 | + .setFailDrawable(R.drawable.ic_fail) |
| 43 | + .setEndDrawableKeepDuration(900) |
| 44 | + .setLoadingEndDrawableSize((int) (loadingBtn.getTextSize() * 2)) |
| 45 | + .setOnLoadingListener(new LoadingButton.OnLoadingListenerAdapter() { |
| 46 | + @Override |
| 47 | + public void onCanceled() { |
| 48 | + Toast.makeText(getApplicationContext(), "onCanceled", Toast.LENGTH_SHORT).show(); |
| 49 | + } |
| 50 | +
|
| 51 | + @Override |
| 52 | + public void onFailed() { |
| 53 | + Toast.makeText(getApplicationContext(), "onFailed", Toast.LENGTH_SHORT).show(); |
| 54 | + } |
| 55 | +
|
| 56 | + @Override |
| 57 | + public void onCompleted() { |
| 58 | + Toast.makeText(getApplicationContext(), "onCompleted", Toast.LENGTH_SHORT).show(); |
| 59 | + } |
| 60 | +
|
| 61 | + @Override |
| 62 | + public void onLoadingStart() { |
| 63 | + loadingBtn.setText("Loading"); |
| 64 | + } |
| 65 | +
|
| 66 | + @Override |
| 67 | + public void onEndDrawableAppear(boolean isComplete, LoadingButton.EndDrawable endDrawable) { |
| 68 | + if (isSuccess) { |
| 69 | + loadingBtn.setText("Complete); |
| 70 | + } else { |
| 71 | + loadingBtn.setText("Fail"); |
| 72 | + } |
| 73 | + } |
| 74 | + }); |
| 75 | +``` |
| 76 | + |
| 77 | +## 属性说明 |
16 | 78 | 属性名|类型|说明
|
17 | 79 | ---|:--:|---:
|
18 |
| -enableShrink|boolean|设置加载时收缩 |
19 |
| -disableClickOnLoading|boolen|设置加载时禁用点击 |
20 |
| -shrinkDuration|int(default:450)|收缩动画时间 |
21 |
| -shrinkDuration|int(default:450)|收缩动画时间 |
| 80 | +enableShrink|boolean (default:true)|设置加载时收缩 |
| 81 | +disableClickOnLoading|boolen (default:true)|设置加载时禁用点击 |
| 82 | +shrinkDuration|integer (default:450ms)|收缩动画时间 |
| 83 | +loadingEndDrawableSize|dimension (default:TextSize*2)|设置LaodingDrawable和EndDrawable大小 |
| 84 | +loadingDrawableColor|color (default:TextColor)设置Loading的颜色 |
| 85 | +loadingDrawablePosition|enum:Start,Top,End,Bottom (default:Start)|设置Loading的位置 |
| 86 | +endCompleteDrawable|reference|完成时显示的图标 |
| 87 | +endFailDrawable|reference|失败时显示的图标 |
| 88 | +endDrawableAppearTime|integer|完成或失败图标从无到有的时间 |
| 89 | +endDrawableDuration|integer|完成或失败图标停留的时间 |
22 | 90 |
|
0 commit comments