Android Timeline View Library (Using RecyclerView) is simple implementation used to display view like Tracking of shipment/order, steppers etc.
For information : checkout Example Screen Code in repository.
Using Gradle
dependencies {
implementation 'com.github.vipulasri:timelineview:1.1.4'
}
See the project's Releases page for a list of versions with their change logs.
If you Watch this repository, GitHub will send you an email every time I publish an update.
- In XML Layout :
<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"/>
<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:markerPaddingLeft="0dp" 0dp sets the marker left padding, applicable only with horizontal orientation app:markerPaddingTop="0dp" 0dp sets the marker top padding, applicable only with vertical orientation app:markerPaddingRight="0dp" 0dp sets the marker right padding, applicable only with horizontal orientation app:markerPaddingBottom="0dp" 0dp sets the marker bottom padding, applicable only with vertical orientation 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);
}
If you're using this library in your app and you'd like to list it here, Please let me know via email, pull requests or issues.
Apps using Timeline-View, via AppBrain Stats
Copyright 2018 Vipul Asri
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS O
59AC
F ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.