怎么在Android中使用StepView实现一个物流进度效果

  介绍

怎么在Android中使用StepView实现一个物流进度效果?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

<强>思路

思路:主要是进行了动态添加,根据上面的效果展示,创建一个子布的局,如下图所示(代码里面的布局图一个ImageView一个视图一个TextView),然后自定义一个MyVerticalView继承LinearLayout(注意设置方向),在MyVerticalView中根据数据来addview()就可以了

<强>代码

怎么在Android中使用StepView实现一个物流进度效果”>,<br/> </p> <p> <强>模型<br/> </强> </p> <p>模式的具体变量是根据上面项的布局,我们需要知道当前的状态跟具体过程描述。状态分为下面三种情况:<br/> STATE_PROCESSING:正在进行中(图标如下)<br/> </p> <p> <img src=

根据上面分析需要两个变量,现状后是为了根据状态设置不同图标的

private  String 描述;//当前状态描述   ,private  String 现状后,//当前状态(上面三个状态中的一个)

<强>完整

public  class  StepModel  {   ,public  static  final  String  STATE_PROCESSING=癙ROCESSING"//正在进行的状态   ,public  static  final  String  STATE_COMPLETED=癈OMPLETED"//已经完成的状态   ,public  static  final  String  STATE_DEFAULT=癉EFAULT"//结尾的默认状态   ,private  String 描述;//当前状态描述   ,private  String 现状后,//当前状态(上面三个状态中的一个)   ,public  StepModel (String 描述,String 现状后),{   this.description =,才能描述;   时间=this.currentState 才能;现状后;   ,}   ,public  String  getCurrentState (), {   return 才能;现状后;   ,}   ,public  void  setCurrentState (String 现状后),{   时间=this.currentState 才能;现状后;   ,}      ,public  String  getDescription (), {   return 才能;描述;   ,}   ,public  void  setDescription (String 描述),{   this.description =,才能描述;   ,}   }

StepView

public  class  MyVerticalStepView  extends  LinearLayout  {   ,private  List mDatas =, new  ArrayList<在();//下面给出了它的设置跟获取方法   ,private  Context  mContext;      ,public  MyVerticalStepView (Context 上下文),{   这才能(上下文,null);   ,}      ,public  MyVerticalStepView (Context 上下文,AttributeSet  attrs), {   这才能(上下文,attrs,, 0);   ,}      ,public  MyVerticalStepView (Context 上下文,AttributeSet  attrs,, int  defStyleAttr), {   超级才能(上下文,attrs,, defStyleAttr);=mContext 才能;环境;      ,}      ,private  void  init (), {   setOrientation才能(垂直);   时间=mDatas 才能;getmDatas();//获取数据   for 才能;(int 小姐:=,0;,小姐:& lt;, mDatas.size();,我+ +),{   ,,//获取布的局,注意第二个参数一定是ViewGroup,否则margin 填充之类的属性将不能使用   ,,View  itemview =, LayoutInflater.from (mContext) .inflate (R.layout.stepview_item,,这个,,假);   ,,TextView  description =, (TextView), itemview.findViewById (R.id.description_tv);   ,,View  line =, itemview.findViewById (R.id.line_v);   ,,ImageView  icon =, (ImageView), itemview.findViewById (R.id.stepicon_iv);   ,,description.setText (mDatas.get (i) .getDescription ());   ,,//根据不同状态设置不同图标   ,,switch  (mDatas.get (i) .getCurrentState ()), {   ,,,case  StepModel.STATE_COMPLETED:   ,,,,icon.setImageResource (R.drawable.complted);   ,,,,休息;   ,,,case  StepModel.STATE_DEFAULT:   ,,,//结尾图标隐藏竖线   ,,,,line.setVisibility(了);   ,,,,icon.setImageResource (R.drawable.default_icon);   ,,,,休息;   ,,,case  StepModel.STATE_PROCESSING:      ,,,,icon.setImageResource (R.drawable.attention);   ,,,,休息;   ,,}      ,,this.addView (itemview);      ,,}   requestLayout才能();//重新绘制布的局   invalidate();//才能刷新当前界面   ,}      ,public  List

怎么在Android中使用StepView实现一个物流进度效果