Line Padding around marker
<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 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.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); }