簡易通用流程 StepView
StepView
介紹
StepView是由自己公司開發的軟件中抽取出來又做了強化,分為橫向版和豎向版,顏色大小隨意可調,靈活好用!
UI
使用
Gradle
compile 'com.xyz.step:step:1.0.4'
Maven
<dependency>
<groupId>com.xyz.step</groupId>
<artifactId>step</artifactId>
<version>1.0.4</version>
<type>pom</type>
</dependency>
橫向
屬性介紹
屬性 | 介紹 | 類型 | 默認 | 是否必須 |
---|---|---|---|---|
h_bg_radius | 背景 ○ 的半徑 | dimension | 5 | 否 |
h_pro_radius | 已完成 ○ 的半徑 | dimension | 2 | 否 |
h_bg_width | 背景線的寬度 | dimension | 3 | 否 |
h_bg_color | 背景的顏色 | color | #cdcbcc | 否 |
h_pro_width | 已完成線的寬度 | dimension | 2 | 否 |
h_pro_color | 已完成的顏色 | color | #029dd5 | 否 |
h_text_padding | 步驟描述文字(title)與○的距離 | dimension | 10 | 否 |
h_time_padding | 時間與○的距離 | dimension | 15 | 否 |
h_max_step | 總步驟(○)的個數 | int | 5 | 否 |
h_pro_step | 已完成步驟 | int | 1 | 否 |
h_textsize | 字體大小 | dimension | 10 | 否 |
layout
<com.xyz.step.FlowViewHorizontal
android:id="@+id/hflowview4"
android:layout_width="match_parent"
android:layout_height="80dp"
android:paddingLeft="30dp"
app:h_bg_radius="6dp"
app:h_bg_width='4dp'
app:h_pro_radius='4dp'
app:h_pro_width="2dp"
app:h_text_padding='10dp'
app:h_textsize='10dp'
app:h_time_padding='17dp' />
代碼
/**
* 進度設置
* @param progress 已完成到哪部
* @param maxStep 總步驟
* @param titles 步驟名稱
* @param times 完成時間
*/
public void setProgress(int progress, int maxStep, String[] titles, String[] times);
/**
* 顏色設置 鍵值是步驟標題所包含的字符
* @param map 標題-顏色
*/
public void setKeyColor(Map<String, String> map);</code></pre>
豎向
屬性介紹
屬性
介紹
類型
默認
是否必須
v_bg_radius
背景 ○ 的半徑
dimension
5
否
v_pro_radius
已完成 ○ 的半徑
dimension
2
否
v_bg_width
背景線的寬度
dimension
3
否
v_bg_color
背景的顏色
color
#cdcbcc
否
v_pro_width
已完成線的寬度
dimension
2
否
v_pro_color
已完成的顏色
color
#029dd5
否
v_interval
○ 與 ○之間的間距
dimension
80
否
v_bgPositionX
指示線距view左邊緣的距離
dimension
100
否
v_textPaddingLeft
步驟描述文字與指示線的距離
dimension
10
否
v_timePaddingRight
時間與指示線的距離
dimension
15
否
v_max_step
總步驟(○)的個數
int
5
否
v_pro_step
已完成步驟
int
1
否
v_textsize
字體大小
dimension
10
否
v_textMoveTop
指示器右側文字位置上下移動的距離
dimension
5
否
v_timeMoveTop
指示器左側文字位置上下移動的距離
dimension
4
否
layout
<com.xyz.step.FlowViewVertical
android:id="@+id/vflow"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="10dp"
android:paddingRight="10dp"
android:paddingTop="10dp"
app:v_bgPositionX="40dp"
app:v_bg_color="#029dd5"
app:v_bg_radius="8dp"
app:v_bg_width="4dp"
app:v_interval="80dp"
app:v_max_step="10"
app:v_pro_color="#cdcbcc"
app:v_pro_radius="8dp"
app:v_pro_step="9"
app:v_pro_width="4dp"
app:v_textMoveTop="7dp"
app:v_textsize="14dp" />
代碼
/**
* 進度設置
* @param progress 當前進行到哪一步
* @param maxStep 總的步驟
* @param titles 文字描述(指示線右側)
* @param times 時間描述(指示線左側)
*/
public void setProgress(int progress, int maxStep, String[] titles, String[] times);
/**
* 顏色設置 鍵值是步驟標題所包含的字符
* @param map 標題-顏色
*/
public void setKeyColor(Map<String, String> map);</code></pre>
使用注意
全部
- title[] 和 time[] 傳null 的時候則不顯示指示器不顯示文字與時間
- 最小步驟總和(max_step)>=2且>=已完成步驟(pro_step)
- 字體大小單位是dp
- 具體步驟顏色的設置是根據步驟描述(title[])中是否包含所傳入map的key值來決定是否更改的,注意是"包含"
- 只有已完成步驟才可以單獨設置顏色,未完成步驟統一使用的是bg_color所得到的顏色
橫向
- 橫向指示器自動計算步驟之間的間隔
- 橫向指示器自動居中顯示,當設定paddingLeft后無需再設定paddingRight
- 橫向指示器不可以橫向滑動
豎向
- 豎向指示器需單獨設置步驟之間的間隔(v_interval)
- 豎向指示器可與ScrollView結合使用,從而達到滑動
- 豎向指示器并沒有使用item復用,如果數據量較大建議使用listview
- 豎向指示器繪制文字有所不同,也因此導致文字與步驟節點(○)不在一個水平線上,可通過v_textMoveTop與v_timeMoveTop適配
LICENSE 開源協議
Apache License Version 2.0
本文由用戶 JosYQM 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!