簡易通用流程 StepView

JosYQM 7年前發布 | 7K 次閱讀 安卓開發 Android開發 移動開發

StepView

介紹

StepView是由自己公司開發的軟件中抽取出來又做了強化,分為橫向版和豎向版,顏色大小隨意可調,靈活好用!

UI

Download Demo

使用

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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!