Android时间轴控件:Timeline-View

jopen 8年前

Android时间轴控件 (使用RecyclerView实现) is simple implementation used to display view like Tracking of shipment/order, steppers etc.

    Screenshot of Sample Application

    Sample Application Apk

    Screenshot

    Quick Setup

    1. Include library

    Automatically with Gradle

    dependencies {      compile 'com.github.vipulasri:timelineview:1.0.0' }

    Manual:

    Manual - Using Android Studio:

    • Download the library folder and import to your root application folder. You can manually achieve this step with 3 steps:
      1. Paste the folder library into your application at the same level of your app, build and gradle folder
      2. Add to your settings.gradle file the following code line: "include ':app', ':timelineview'"
      3. Rebuild the project
    • File → Project Structure → in Modules section click on "app" → Click on tab "Dependecies" → Click on the green plus → Module Dependecy → Select ":library"
    • Done

  • 2. Usage

  • In XML Layout :

  • 2. Usage

  • In XML Layout :

<com.vipul.hp_hp.timelineview.TimelineView  android:id="@+id/time_marker"  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:paddingTop="30dp"  android:paddingBottom="30dp"  android:paddingLeft="10dp"  android:paddingRight="10dp"  app:marker_size="25dp"  app:line_size="2dp"  app:line="@color/colorPrimary"/>

RecyclerView Holder : YourRecyclerViewHoldershould have an extra paramenter in constructor i.e viewType fromonCreateViewHolder. You would also have to call the methodinitLine(viewType)in constructor definition.
    public class TimeLineViewHolder extends RecyclerView.ViewHolder {          public  TimelineView mTimelineView;            public TimeLineViewHolder(View itemView, int viewType) {              super(itemView);              mTimelineView = (TimelineView) itemView.findViewById(R.id.time_marker);              mTimelineView.initLine(viewType);          }      }

  • RecyclerView Adapter : overridegetItemViewTypemethod in Adapter
 @Override      public int getItemViewType(int position) {          return TimelineView.getTimeLineViewType(position,getItemCount());      }

And pass theviewTypefromonCreateViewHolderto its Holder.

    @Override      public TimeLineViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {          View view = View.inflate(parent.getContext(), R.layout.item_timeline, null);          return new TimeLineViewHolder(view, viewType);      }

For information : checkout sample app in repository.


项目主页:http://www.open-open.com/lib/view/home/1450793316261