Step by step,just use HorizontalStepView,VerticalStepView. step indicator,flow indicator,timeline,order process,express status

Related tags

UI/UX StepView
Overview

StepView

Step by step. Step indicator. Flow indicator。

snapshot

like this:HorizontalStepView

like this

also like this:VerticalStepView

Yeah,I am not working in JD,Just imitate.It's a joke .ha ha ha

It is looks like so beautiful.

how to use

Add it in your root build.gradle at the end of repositories:

repositories {
		...
		maven { url "https://jitpack.io" }
	}

Step 2. Add the dependency

dependencies {
        compile 'com.github.baoyachi:StepView:1.9'
}		

use HorizontalStepView

in xml

	<com.baoyachi.stepview.HorizontalStepView
            android:id="@+id/step_view"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            />

use code

HorizontalStepView setpview5 = (HorizontalStepView) mView.findViewById(R.id.step_view5);
        List<StepBean> stepsBeanList = new ArrayList<>();
        StepBean stepBean0 = new StepBean("接单",1);
        StepBean stepBean1 = new StepBean("打包",1);
        StepBean stepBean2 = new StepBean("出发",1);
        StepBean stepBean3 = new StepBean("送单",0);
        StepBean stepBean4 = new StepBean("完成",-1);
        stepsBeanList.add(stepBean0);
        stepsBeanList.add(stepBean1);
        stepsBeanList.add(stepBean2);
        stepsBeanList.add(stepBean3);
        stepsBeanList.add(stepBean4);


        setpview5
                .setStepViewTexts(stepsBeanList)//总步骤
                .setTextSize(12)//set textSize
                .setStepsViewIndicatorCompletedLineColor(ContextCompat.getColor(getActivity(), android.R.color.white))//设置StepsViewIndicator完成线的颜色
                .setStepsViewIndicatorUnCompletedLineColor(ContextCompat.getColor(getActivity(), R.color.uncompleted_text_color))//设置StepsViewIndicator未完成线的颜色
                .setStepViewComplectedTextColor(ContextCompat.getColor(getActivity(), android.R.color.white))//设置StepsView text完成线的颜色
                .setStepViewUnComplectedTextColor(ContextCompat.getColor(getActivity(), R.color.uncompleted_text_color))//设置StepsView text未完成线的颜色
                .setStepsViewIndicatorCompleteIcon(ContextCompat.getDrawable(getActivity(), R.drawable.complted))//设置StepsViewIndicator CompleteIcon
                .setStepsViewIndicatorDefaultIcon(ContextCompat.getDrawable(getActivity(), R.drawable.default_icon))//设置StepsViewIndicator DefaultIcon
                .setStepsViewIndicatorAttentionIcon(ContextCompat.getDrawable(getActivity(), R.drawable.attention));//设置StepsViewIndicator AttentionIcon

use VerticalStepView

this widget can reverse or forward draw,please look at below jd express picture

this status is reverse draw,so ,wo also have a method can realize jd express effect like this:

	/**
     * is reverse draw 是否倒序画
     * 
     * @param isReverSe default is true
     * @return
     */
    public VerticalStepView reverseDraw(boolean isReverSe)
    {
        this.mStepsViewIndicator.reverseDraw(isReverSe);
        return this;
    }

you can use this method can realize reverse draw;Also you can see exmapleMainActivity,this example has detail useful description;

in xml

	<com.baoyachi.stepview.VerticalStepView
            android:id="@+id/step_view0"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            />

in code

mSetpview0 = (VerticalStepView) findViewById(R.id.step_view0);

        List<String> list0 = new ArrayList<>();
        list0.add("接已提交定案,等待系统确认");
        list0.add("您的商品需要从外地调拨,我们会尽快处理,请耐心等待");
        list0.add("您的订单已经进入亚洲第一仓储中心1号库准备出库");
        list0.add("您的订单预计6月23日送达您的手中,618期间促销火爆,可能影响送货时间,请您谅解,我们会第一时间送到您的手中");
        list0.add("您的订单已打印完毕");
        list0.add("您的订单已拣货完成");
        list0.add("扫描员已经扫描");
        list0.add("打包成功");
        list0.add("配送员【包牙齿】已出发,联系电话【130-0000-0000】,感谢您的耐心等待,参加评价还能赢取好多礼物哦");
        list0.add("感谢你在京东购物,欢迎你下次光临!");
        mSetpview0.setStepsViewIndicatorComplectingPosition(list0.size() - 2)//设置完成的步数
		         .reverseDraw(false)//default is true
                .setStepViewTexts(list0)//总步骤
                .setLinePaddingProportion(0.85f)//设置indicator线与线间距的比例系数
                .setStepsViewIndicatorCompletedLineColor(ContextCompat.getColor(getActivity(), android.R.color.white))//设置StepsViewIndicator完成线的颜色
                .setStepsViewIndicatorUnCompletedLineColor(ContextCompat.getColor(getActivity(), R.color.uncompleted_text_color))//设置StepsViewIndicator未完成线的颜色
                .setStepViewComplectedTextColor(ContextCompat.getColor(getActivity(), android.R.color.white))//设置StepsView text完成线的颜色
                .setStepViewUnComplectedTextColor(ContextCompat.getColor(getActivity(), R.color.uncompleted_text_color))//设置StepsView text未完成线的颜色
                .setStepsViewIndicatorCompleteIcon(ContextCompat.getDrawable(getActivity(), R.drawable.complted))//设置StepsViewIndicator CompleteIcon
                .setStepsViewIndicatorDefaultIcon(ContextCompat.getDrawable(getActivity(), R.drawable.default_icon))//设置StepsViewIndicator DefaultIcon
                .setStepsViewIndicatorAttentionIcon(ContextCompat.getDrawable(getActivity(), R.drawable.attention));//设置StepsViewIndicator AttentionIcon

Use So Simple!!!

See Detail

详细链接请点击

参考链接

Android-StepsView

Thanks

  • 感谢 iconfont 提供的图片资源
  • 感谢 anton46 提供的源码作参考

图片来源

End

喜欢这个控件的小伙伴可以点击star哦!

Contact us

Comments
  • how to update stepsViewIndicatorComplectingPosition

    how to update stepsViewIndicatorComplectingPosition

    setpview0.setStepsViewIndicatorComplectingPosition(1)//设置完成的步数 .setStepViewTexts(list0)//总步骤 .setTextSize(16)//set textSize .setStepsViewIndicatorCompletedLineColor(ContextCompat.getColor(getActivity(), android.R.color.white))//设置StepsViewIndicator完成线的颜色 .setStepsViewIndicatorUnCompletedLineColor(ContextCompat.getColor(getActivity(), R.color.uncompleted_text_color))//设置StepsViewIndicator未完成线的颜色 .setStepViewComplectedTextColor(ContextCompat.getColor(getActivity(), android.R.color.white))//设置StepsView text完成线的颜色 ; i am making one global variable of HorizontalStepView and setting up.

    then when user click on button i am calling `mView.findViewById(R.id.an).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { setpview0.setStepsViewIndicatorComplectingPosition(3);

            }
        });` 
    

    but it is not updating

    opened by GauravP123 9
  • 在volley里用的时候 一直报list.size = 0

    在volley里用的时候 一直报list.size = 0

    @DebugLog
        public void getStatus() {
            RequestQueue `requestQueue` = MyVolley.getRequestQueue();
            StringRequest request = new StringRequest(Request.Method.GET, AppConfig.SM_DD_STATUS + "/" + mId, new Response.Listener<String>() {
                @DebugLog
                @Override
                public void onResponse(String response) {
                    if (!StringUtils.isEmpty(response))
                        setStepView(new Gson().fromJson(response, SmStatus[].class));
                }
            }, new Response.ErrorListener() {
                @DebugLog
                @Override
                public void onErrorResponse(VolleyError error) {
    
                }
            });
            requestQueue.add(request);
        }
    
        @DebugLog
        private void setStepView(SmStatus[] smStatuses) {
            List<String> statusString = new ArrayList<>();
           /* for (SmStatus status :
                    smStatuses) {
                statusString.add(status.getStatusId() + "\n" + status.getStatusTime());
            }*/
    //        mSmDdDetailStatusView.setStepViewTexts(statusString);
            setView();
        }
    @DebugLog
        private void setView() {
            List<String> list0 = new ArrayList<>();
            list0.add("接已提交定案,等待系统确认");
            list0.add("您的商品需要从外地调拨,我们会尽快处理,请耐心等待");
            list0.add("您的订单已经进入亚洲第一仓储中心1号库准备出库");
            list0.add("您的订单预计6月23日送达您的手中,618期间促销火爆,可能影响送货时间,请您谅解,我们会第一时间送到您的手中");
            list0.add("您的订单已打印完毕");
            list0.add("您的订单已拣货完成");
            list0.add("扫描员已经扫描");
            list0.add("打包成功");
            list0.add("配送员【包牙齿】已出发,联系电话【130-0000-0000】,感谢您的耐心等待,参加评价还能赢取好多礼物哦");
            list0.add("感谢你在京东购物,欢迎你下次光临!");
    
         mSmDdDetailStatusView.setStepsViewIndicatorComplectingPosition(list0.size() - 2)//设置完成的步数
                    .reverseDraw(false)//default is true
                    .setStepViewTexts(list0)//总步骤
                    .setLinePaddingProportion(0.85f)//设置indicator线与线间距的比例系数
                    .setStepsViewIndicatorCompletedLineColor(ContextCompat.getColor(getActivity(), android.R.color.white))//设置StepsViewIndicator完成线的颜色
                    .setStepsViewIndicatorUnCompletedLineColor(ContextCompat.getColor(getActivity(), R.color.uncompleted_text_color))//设置StepsViewIndicator未完成线的颜色
                    .setStepViewComplectedTextColor(ContextCompat.getColor(getActivity(), android.R.color.white))//设置StepsView text完成线的颜色
                    .setStepViewUnComplectedTextColor(ContextCompat.getColor(getActivity(), R.color.uncompleted_text_color))//设置StepsView text未完成线的颜色
                    .setStepsViewIndicatorCompleteIcon(ContextCompat.getDrawable(getActivity(), R.drawable.complted))//设置StepsViewIndicator CompleteIcon
                    .setStepsViewIndicatorDefaultIcon(ContextCompat.getDrawable(getActivity(), R.drawable.default_icon))//设置StepsViewIndicator DefaultIcon
                    .setStepsViewIndicatorAttentionIcon(ContextCompat.getDrawable(getActivity(), R.drawable.attention));//设置StepsViewIndicator AttentionIcon
        }
    }
    
    

    6:30:47.364 4157-4157/com.dijiaapp.eat.atext E/AndroidRuntime: FATAL EXCEPTION: main Process: com.dijiaapp.eat.atext, PID: 4157 java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0 at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255) at java.util.ArrayList.get(ArrayList.java:308) at com.baoyachi.stepview.VerticalStepView.ondrawIndicator(VerticalStepView.java:203) at com.baoyachi.stepview.VerticalStepViewIndicator.onDraw(VerticalStepViewIndicator.java:193) at android.view.View.draw(View.java:15278) at android.view.View.updateDisplayListIfDirty(View.java:14214) at android.view.View.getDisplayList(View.java:14236) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3390) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3369) at android.view.View.updateDisplayListIfDirty(View.java:14174) at android.view.View.getDisplayList(View.java:14236) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3390) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3369) at android.view.View.updateDisplayListIfDirty(View.java:14174) at android.view.View.getDisplayList(View.java:14236) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3390) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3369) at android.view.View.updateDisplayListIfDirty(View.java:14174) at android.view.View.getDisplayList(View.java:14236) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3390) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3369) at android.view.View.updateDisplayListIfDirty(View.java:14174) at android.view.View.getDisplayList(View.java:14236) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3390) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3369) at android.view.View.updateDisplayListIfDirty(View.java:14174) at android.view.View.getDisplayList(View.java:14236) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3390) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3369) at android.view.View.updateDisplayListIfDirty(View.java:14174) at android.view.View.getDisplayList(View.java:14236) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3390) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3369) at android.view.View.updateDisplayListIfDirty(View.java:14174) at android.view.View.getDisplayList(View.java:14236) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3390) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3369) at android.view.View.updateDisplayListIfDirty(View.java:14174) at android.view.View.getDisplayList(View.java:14236) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3390) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3369) at android.view.View.updateDisplayListIfDirty(View.java:14174) at android.view.View.getDisplayList(View.java:14236) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3390) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3369) at android.view.View.updateDisplayListIfDirty(View.java:14174) at android.view.View.getDisplayList(View.java:14236) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3390) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3369) at android.view.View.updateDisplayListIfDirty(View.java:14174) at android.view.View.getDisplayList(View.java:14236) at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:273) at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:279) at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:318) at android.view.ViewRootImpl.draw(ViewRootImpl.java:2570) at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2393) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2023) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1102) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5930) at and

    bug invalid question 
    opened by WalterWee 6
  • How to set StepsViewIndicatorAttention

    How to set StepsViewIndicatorAttention

    hi i want to set StepsViewIndicatorCompleted without moving forward for line? is any way to set ? so use case is right no i have 3 step so i want set 2nd step as completed but line should be between 1->2 not 2->3

    opened by GauravP123 3
  • 引入项目时报错

    引入项目时报错

    根目录添加 repositories { ... maven { url "https://jitpack.io" } } 项目目录添加 dependencies { compile 'com.github.baoyachi:StepView:1.9' } 同步后报错:ERROR: Failed to resolve: com.github.baoyachi:StepView:1.9 Show in Project Structure dialog Affected Modules: app

    opened by ZhuRu1hang 1
  • No label texts appear

    No label texts appear

    This is my example code:

    ` HorizontalStepView stepViewIndicator = findViewById(R.id.stepViewIndicator);

        List<StepBean> stepsBeanList = new ArrayList<>();
        StepBean stepBean0 = new StepBean("1",1);
        StepBean stepBean1 = new StepBean("2",1);
        StepBean stepBean2 = new StepBean("3",1);
        StepBean stepBean3 = new StepBean("4",0);
        StepBean stepBean4 = new StepBean("5",-1);
        stepsBeanList.add(stepBean0);
        stepsBeanList.add(stepBean1);
        stepsBeanList.add(stepBean2);
        stepsBeanList.add(stepBean3);
        stepsBeanList.add(stepBean4);
    
        stepViewIndicator
                .setStepViewTexts(stepsBeanList)
                .setTextSize(R.dimen.label_text)
                .setStepsViewIndicatorCompletedLineColor(ContextCompat.getColor(this, android.R.color.white))
                .setStepsViewIndicatorUnCompletedLineColor(ContextCompat.getColor(this, R.color.colorAccentLight))
                .setStepViewComplectedTextColor(ContextCompat.getColor(this, android.R.color.white))
                .setStepViewUnComplectedTextColor(ContextCompat.getColor(this, R.color.colorAccentLight))
                .setStepsViewIndicatorCompleteIcon(ContextCompat.getDrawable(this, R.drawable.complted))
                .setStepsViewIndicatorDefaultIcon(ContextCompat.getDrawable(this, R.drawable.default_icon))
                .setStepsViewIndicatorAttentionIcon(ContextCompat.getDrawable(this, R.drawable.attention));`
    

    <com.baoyachi.stepview.HorizontalStepView android:id="@+id/stepViewIndicator" android:layout_width="match_parent" android:layout_height="90dp" android:layout_centerInParent="true" android:layout_below="@+id/txtSubTitle" />

    image

    No label texts under icons

    Any idea?

    opened by Emiliano7369 1
  • VerticalStepViewIndicator.OnDrawIndicatorListener

    VerticalStepViewIndicator.OnDrawIndicatorListener

    一个小问题,虽然在这个控件库中没有问题,但我觉得编程中应该是要注意的。 VerticalStepViewIndicator的onDraw()方法的第二句,mOnDrawListener是由外面设置的,此处使用时需要判断是否为null,在预览widget_vertical_stepsview.xml时可以看到的。

     if (mOnDrawListener!=null){
                mOnDrawListener.onDrawIndicator();
       }
    

    相同的问题有4个。

    bug question 
    opened by Uphie 1
  • 建议

    建议

    为什么不搞一个取出当前到第几步的方法? 这样不就可以动态实现跑到下一步还是回到上一步

    ` public void click(View v){ int currentPosition = stepViewSelf.getStepsViewIndicatorComplectingPosition(); switch (v.getId()){ case R.id.plus: if(currentPosition == list0.size()-1) return; stepViewSelf.setStepsViewIndicatorComplectingPosition(++currentPosition); break; case R.id.dec: if(currentPosition == 0) return; stepViewSelf.setStepsViewIndicatorComplectingPosition(--currentPosition); break; } }

    public void setmComplectingPosition(int mComplectingPosition) { this.mComplectingPosition = mComplectingPosition; invalidate(); } `

    question 
    opened by action-hong 1
  • Fix broken headings in Markdown files

    Fix broken headings in Markdown files

    GitHub changed the way Markdown headings are parsed, so this change fixes it.

    See bryant1410/readmesfix for more information.

    Tackles bryant1410/readmesfix#1

    opened by bryant1410 0
  • 文字颜色改变有问题

    文字颜色改变有问题

    lib库中HorizontalStepView这个文件中完成事项的文字颜色改变有问题,ondrawIndicator()方法中的逻辑错误 if(i <= mComplectingPosition) { mTextView.setTypeface(null, Typeface.BOLD); mTextView.setTextColor(mComplectedTextColor); } else { mTextView.setTextColor(mUnComplectedTextColor); } 修改为 if (mStepBeanList.get(i).getState()!=StepBean.STEP_UNDO){ mTextView.setTextColor(mComplectedTextColor); }else{ mTextView.setTextColor(mUnComplectedTextColor); }

    opened by EugeniaGao 0
  • Refresh verticalstepview

    Refresh verticalstepview

    Hi everyone, I am facing an issue while updating the views, as removeallviews and onDrawIndicator makes no effects in stepview. Pplease help me. Thanks,

    opened by vinay089 0
Releases(1.9)
  • 1.9(Sep 8, 2016)

    In this version ,add StepBean in StepView

    public class StepBean
    {
        public static final int STEP_UNDO = -1;//未完成  undo step
        public static final int STEP_CURRENT = 0;//正在进行 current step
        public static final int STEP_COMPLETED = 1;//已完成 completed step
    
        private String name;
        private int state;
    
        public String getName()
        {
            return name;
        }
    
        public void setName(String name)
        {
            this.name = name;
        }
    
        public int getState()
        {
            return state;
        }
    
        public void setState(int state)
        {
            this.state = state;
        }
    
        public StepBean()
        {
        }
    
        public StepBean(String name, int state)
        {
            this.name = name;
            this.state = state;
        }
    }
    

    you can control StepView status outside,for example

    
    //-----------------------------this data is example and you can also get data from server-----------------------------
    
    private void showSetpView5()
        {
            HorizontalStepView setpview5 = (HorizontalStepView) mView.findViewById(R.id.step_view5);
            List<StepBean> stepsBeanList = new ArrayList<>();
            StepBean stepBean0 = new StepBean("接单",1);
            StepBean stepBean1 = new StepBean("打包",1);
            StepBean stepBean2 = new StepBean("出发",1);
            StepBean stepBean3 = new StepBean("送单",0);
            StepBean stepBean4 = new StepBean("完成",-1);
            stepsBeanList.add(stepBean0);
            stepsBeanList.add(stepBean1);
            stepsBeanList.add(stepBean2);
            stepsBeanList.add(stepBean3);
            stepsBeanList.add(stepBean4);
    
    
            setpview5
                    .setStepViewTexts(stepsBeanList)//总步骤
                    .setTextSize(12)//set textSize
                    .setStepsViewIndicatorCompletedLineColor(ContextCompat.getColor(getActivity(), android.R.color.white))//设置StepsViewIndicator完成线的颜色
                    .setStepsViewIndicatorUnCompletedLineColor(ContextCompat.getColor(getActivity(), R.color.uncompleted_text_color))//设置StepsViewIndicator未完成线的颜色
                    .setStepViewComplectedTextColor(ContextCompat.getColor(getActivity(), android.R.color.white))//设置StepsView text完成线的颜色
                    .setStepViewUnComplectedTextColor(ContextCompat.getColor(getActivity(), R.color.uncompleted_text_color))//设置StepsView text未完成线的颜色
                    .setStepsViewIndicatorCompleteIcon(ContextCompat.getDrawable(getActivity(), R.drawable.complted))//设置StepsViewIndicator CompleteIcon
                    .setStepsViewIndicatorDefaultIcon(ContextCompat.getDrawable(getActivity(), R.drawable.default_icon))//设置StepsViewIndicator DefaultIcon
                    .setStepsViewIndicatorAttentionIcon(ContextCompat.getDrawable(getActivity(), R.drawable.attention));//设置StepsViewIndicator AttentionIcon
        }
    
        private void showSetpView6()
        {
            HorizontalStepView setpview6 = (HorizontalStepView) mView.findViewById(R.id.step_view6);
    
            List<StepBean> stepsBeanList = new ArrayList<>();
            StepBean stepBean0 = new StepBean("接单",1);
            StepBean stepBean1 = new StepBean("打包",1);
            StepBean stepBean2 = new StepBean("出发",1);
            StepBean stepBean3 = new StepBean("送单",1);
            StepBean stepBean4 = new StepBean("完成",1);
            StepBean stepBean5 = new StepBean("支付",1);
            stepsBeanList.add(stepBean0);
            stepsBeanList.add(stepBean1);
            stepsBeanList.add(stepBean2);
            stepsBeanList.add(stepBean3);
            stepsBeanList.add(stepBean4);
            stepsBeanList.add(stepBean5);
    
            setpview6.setStepViewTexts(stepsBeanList)//总步骤
                    .setTextSize(13)//set textSize
                    .setStepsViewIndicatorCompletedLineColor(ContextCompat.getColor(getActivity(), android.R.color.white))//设置StepsViewIndicator完成线的颜色
                    .setStepsViewIndicatorUnCompletedLineColor(ContextCompat.getColor(getActivity(), R.color.uncompleted_text_color))//设置StepsViewIndicator未完成线的颜色
                    .setStepViewComplectedTextColor(ContextCompat.getColor(getActivity(), android.R.color.white))//设置StepsView text完成线的颜色
                    .setStepViewUnComplectedTextColor(ContextCompat.getColor(getActivity(), R.color.uncompleted_text_color))//设置StepsView text未完成线的颜色
                    .setStepsViewIndicatorCompleteIcon(ContextCompat.getDrawable(getActivity(), R.drawable.complted))//设置StepsViewIndicator CompleteIcon
                    .setStepsViewIndicatorDefaultIcon(ContextCompat.getDrawable(getActivity(), R.drawable.default_icon))//设置StepsViewIndicator DefaultIcon
                    .setStepsViewIndicatorAttentionIcon(ContextCompat.getDrawable(getActivity(), R.drawable.attention));//设置StepsViewIndicator AttentionIcon
        }
    //-----------------------------this data is example and you can also get data from server-----------------------------
    
    
    Source code(tar.gz)
    Source code(zip)
  • 1.8.1(Jul 30, 2016)

    fixbug: when ondrawIndicator() will be callback ,that ViewGrop(RelativeLayout) all SubClass overlying,so,it‘s clearing ViewGroup,call this method

       if(mTextContainer != null)
            {
                mTextContainer.removeAllViews();//clear ViewGroup
                ...
            }
    
    Source code(tar.gz)
    Source code(zip)
  • 1.8(Jul 28, 2016)

  • 1.7(Jul 21, 2016)

    fix bug issues15

    java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
    at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
    at java.util.ArrayList.get(ArrayList.java:308)
    at com.baoyachi.stepview.VerticalStepView.ondrawIndicator(VerticalStepView.java:203)
    at com.baoyachi.stepview.VerticalStepViewIndicator.onDraw(VerticalStepViewIndicator.java:193)
    at android.view.View.draw(View.java:15278)
    at android.view.View.updateDisplayListIfDirty(View.java:14214)
    at android.view.View.getDisplayList(View.java:14236)
    at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3390)
    at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3369)
    at android.view.View.updateDisplayListIfDirty(View.java:14174)
    at android.view.View.getDisplayList(View.java:14236)
    .
    .
    .
    
    Source code(tar.gz)
    Source code(zip)
  • 1.6(Jul 12, 2016)

    HorizontalStepView add method

    • setTextSize
     /**
         * set textSize
         * @param textSize
         * @return
         */
        public HorizontalStepView setTextSize(int textSize)
        {
            if(textSize>0)
            {
                mTextSize = textSize;
            }
            return this;
        }
    
    • set TextView location
                    mTextView = new TextView(getContext());
                    mTextView.setTextSize(TypedValue.COMPLEX_UNIT_SP, mTextSize);
                    mTextView.setText(mTexts.get(i));
                    int spec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
                    mTextView.measure(spec, spec);
                    // getMeasuredWidth
                    int measuredWidth = mTextView.getMeasuredWidth();
                    mTextView.setX(complectedXPosition.get(i) - measuredWidth/2);
                    mTextView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
    
    
    
    Source code(tar.gz)
    Source code(zip)
  • 1.5(Jun 29, 2016)

    you can custom linePadding

      /**
         * set linePadding  proportion 设置线间距的比例系数
         * @param linePaddingProportion
         * @return
         */
        public VerticalStepView setLinePaddingProportion(float linePaddingProportion)
        {
            this.mStepsViewIndicator.setIndicatorLinePaddingProportion(linePaddingProportion);
            return this;
        }
    

    ok,now you can use below method:

     .setLinePaddingProportion(0.85f)//the value is your custom
    

    👍

    Source code(tar.gz)
    Source code(zip)
  • 1.4(Jun 27, 2016)

    add method in VerticalStepViewIndicator:

        /**
         * is reverse draw 是否倒序画
         */
        public void reverseDraw(boolean isReverseDraw)
        {
            this.mIsReverseDraw = isReverseDraw;
            invalidate();
        }
    

    you can use this method realize this widget reverse draw or forward draw.

    Source code(tar.gz)
    Source code(zip)
  • 1.3(Jun 27, 2016)

    before:
    float paddingTop = (getHeight() - mStepNum * mCircleRadius * 2 - (mStepNum - 1) * mLinePadding) / 2; after: remove paddingTop

    explain: Because this view height id dynamic,before we us paddingTop is calculat this view locate center.But now this view height is dynamic measure,so this view always draw from top.So ,I remove paddingTop.

    Source code(tar.gz)
    Source code(zip)
  • 1.2(Jun 25, 2016)

  • 1.1(Jun 24, 2016)

  • v1.0(Jun 22, 2016)

Owner
baoyachi. Aka Rust Hairy crabs
I love Rust 🦀
baoyachi. Aka Rust Hairy crabs
A util for setting status bar style on Android App.

StatusBarUtil A util for setting status bar style on Android App. It can work above API 19(KitKat 4.4). 中文版点我 Sample Download StatusBarUtil-Demo Chang

Jaeger 8.8k Jan 7, 2023
WindView is an Android Library to show Weather's Wind & pressure Status

WindView WindView is an Android Library to show Weather's Wind & pressure Status Screenshot Demo demo.apk Setup Step 1: Add it as a Dependency in Your

Ahmad Nemati 209 Nov 18, 2022
SystemUiController - Android Ui color controller (status bar, navigation bar)

SystemUiController Android system ui color controller (status bar, navigation bar) Download implementation "land.sungbin:systemuicontroller:${version}

Ji Sungbin 8 Dec 3, 2022
Android Material Json Form Wizard is a library for creating beautiful form based wizards within your app just by defining json in a particular format.

Android Json Wizard Android Json Wizard is a library for creating beautiful form based wizards within your app just by defining json in a particular f

Vijay Rawat 355 Nov 11, 2022
Just a Wheel——A easy way to setEmptyView to ListView、GridView or RecyclerView etc..

中文说明在这里 TEmptyView Just a Wheel—— A easier way to setEmptyView. Without having to write xml file every time. It supports AdapterView(ListView,GridView

Barry 454 Jan 9, 2023
This project created just for help developer who want to and ability of read VISA, UNION PAY, HUMO, ATTO and some other cards data read.

If you enjoy my content, please consider supporting what I do. Thank you. By me a Coffee To get a Git project into your build: Step 1. Add the JitPack

Fozilbek Imomov 1 Oct 15, 2022
Implementation of the fragment with the ability to display indeterminate progress indicator when you are waiting for the initial data.

Android-ProgressFragment Implementation of the fragment with the ability to display indeterminate progress indicator when you are waiting for the init

Evgeny Shishkin 813 Nov 11, 2022
Android-ScrollBarPanel allows to attach a View to a scroll indicator like it's done in Path 2.0

Path 2.0 like ScrollBarPanel for Android Android-ScrollBarPanel allows to attach a View to a scroll indicator like it's done in Path 2.0. Features Sup

Arnaud Vallat 551 Dec 22, 2022
Scrollbar Indicator usign compose

Carousel Carousel is a scroll indicator for ScrollableState composes. Carousel can be vertial or horizontal indicator based on the size provided using

null 58 Oct 19, 2022
Useful library to use custom fonts in your android app

EasyFonts A simple and useful android library to use custom fonts in android apps without adding fonts into asset/resource folder.Also by using this l

Vijay Vankhede 419 Sep 9, 2022
⚡️A highly customizable, powerful and easy-to-use alerting library for Android.

Flashbar A highly customizable, powerful and easy-to-use alerting library for Android. Specs This library allows you to show messages or alerts in you

Aritra Roy 1.7k Dec 7, 2022
A simple, customizable and easy to use swipeable view stack for Android.

SwipeStack A simple, customizable and easy to use swipeable view stack for Android. QuickStart Include the Gradle dependency dependencies { compil

Frederik Schweiger 1.5k Dec 30, 2022
Library and example project on how to use the UITableView component

UITableView for Android Usage Installation Android Studio Paste or clone this library into the /libs folder, in the root directory of your project. Cr

Thiago Locatelli 679 Nov 11, 2022
A small, easy to use android library for implementing flipping between views as seen in the popular Flipboard application

FlipView About This library is made to be very easy to use and at the same time be feature complete. With only a few lines of code you can have a flip

Emil Sjölander 924 Nov 10, 2022
Hi,Developer,Welcome to use SuperTextView !

GitAds Hello, Developer!Welcome to use SuperTextView English | 中文 Hi,Developer,Welcome to use SuperTextView ! Thank you and tens of thousands of Andro

CoorChice 3.3k Dec 30, 2022
A color picker and a color preference for use in Android applications.

HSV-Alpha Color Picker for Android This library implements a color picker and a color preference for use in Android applications. Features I couldn't

Martin Stone 279 Nov 26, 2022
A lovely snail,You can use it as a seekbar or progressbar.

SnailBar A lovely ,you can use it as a seekbar or progressbar. Helixbar design by Davlikanoff.This is his words: Hi Guys! This 18 seconds long animati

CJJ 527 Jun 10, 2022
A simple use of canvas to make real life clock

ClockView A simple use of canvas to make real life clock PR-viewer

Kishan Kumar 0 Dec 18, 2021
Xamarin.Android provides open-source bindings of the Android SDK for use with .NET managed languages such as C#

Xamarin.Android Xamarin.Android provides open-source bindings of the Android SDK for use with .NET managed languages such as C#. Build Status Platform

Xamarin 1.8k Jan 5, 2023