Android时间轴控件:Timeline-View
jopen
9年前
Android时间轴控件 (使用RecyclerView实现) is simple implementation used to display view like Tracking of shipment/order, steppers etc.
- Download the library folder and import to your root application folder. You can manually achieve this step with 3 steps:
- Paste the folder library into your application at the same level of your app, build and gradle folder
- Add to your settings.gradle file the following code line: "include ':app', ':timelineview'"
- 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 :
Screenshot of Sample Application
Quick Setup
1. Include library
Automatically with Gradle
dependencies { compile 'com.github.vipulasri:timelineview:1.0.0' }
Manual:
Manual - Using Android Studio:
-
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.