
<com.github.vipulasri.timelineview.TimelineView android:id="@+id/timeline" android:layout_width="wrap_content" android:layout_height="match_parent" app:markerSize="20dp" app:lineWidth="2dp" app:startLineColor="@color/colorPrimary" app:endLineColor="@color/colorPrimary" app:linePadding="5dp"/>
Configure using xml attributes or setters in code:
| Attribute Name | Default Value | Description |
|---|---|---|
| app:marker="@drawable/marker" | Green Colored Oval Drawable | sets marker drawable |
| app:markerSize="25dp" | 25dp | sets marker size |
| app:markerInCenter="false" | true | sets the marker in center of line if `true` |
| app:startLineColor="@color/primarColor" | Dark Grey Line | sets start line color |
| app:endLineColor="@color/primarColor" | Dark Grey Line | sets end line color |
| app:lineWidth="2dp" | 2dp | sets line width |
| app:lineOrientation="horizontal" | vertical | sets orientation of line ie `horizontal` or `vertical` |
| app:linePadding="5dp" | 0dp | sets line padding around marker |
| app:lineStyle="dash" | normal | sets line style ie `normal` or `dashed` |
| app:lineStyleDashGap="4dp" | 4dp | sets line dash gap |
| app:lineStyleDashLength="8dp" | 8dp | sets line dash length |
RecyclerView Holder : Your RecyclerViewHolder should have an extra parameter in constructor i.e viewType from onCreateViewHolder. You would also have to call the method initLine(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.timeline);
mTimelineView.initLine(viewType);
}
}RecyclerView Adapter : override getItemViewType method in Adapter
@Override
public int getItemViewType(int position) { return TimelineView.getTimeLineViewType(position, getItemCount());
}And pass the viewType from onCreateViewHolder to 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);
}