diff --git a/README.md b/README.md index f66cc0c..6dc5135 100644 --- a/README.md +++ b/README.md @@ -56,7 +56,7 @@ allprojects { ```gradle dependencies { - implementation 'com.github.lriccardo:TimelineView:1.1.0' + implementation 'com.github.lriccardo:TimelineView:1.1.1' } ``` diff --git a/TimelineView/src/main/java/com/lriccardo/timelineview/TimelineDecorator.kt b/TimelineView/src/main/java/com/lriccardo/timelineview/TimelineDecorator.kt index 8667f9e..0076784 100644 --- a/TimelineView/src/main/java/com/lriccardo/timelineview/TimelineDecorator.kt +++ b/TimelineView/src/main/java/com/lriccardo/timelineview/TimelineDecorator.kt @@ -57,6 +57,9 @@ class TimelineDecorator( } override fun onDraw(c: Canvas, parent: RecyclerView, state: RecyclerView.State) { + c.save() + c.clipRect(parent.paddingLeft, parent.paddingTop, parent.width, parent.height-parent.paddingBottom) + parent.children.forEach { val itemPosition = parent.getChildAdapterPosition(it) @@ -64,7 +67,8 @@ class TimelineDecorator( return val timelineView = TimelineView(context = parent.context) - (parent.adapter as? TimelineAdapter)?.run { + + (parent.adapter as? TimelineAdapter ?: object : TimelineAdapter {}).run { getTimelineViewType(itemPosition)?.let { timelineView.viewType = it } ?: timelineView.setType(itemPosition, parent.adapter?.itemCount ?: -1) @@ -95,6 +99,7 @@ class TimelineDecorator( timelineView.linePadding = it } } + timelineView.indicatorSize = indicatorSize timelineView.indicatorYPosition = indicatorYPosition @@ -127,16 +132,17 @@ class TimelineDecorator( c.save() when (position) { Position.Left -> { - c.translate(padding, it.top.toFloat()) + c.translate(padding+parent.paddingLeft, it.top.toFloat()) timelineView.layout(0, 0, timelineView.measuredWidth, it.measuredHeight) } Position.Right -> { - c.translate(it.measuredWidth + padding, it.top.toFloat()) + c.translate(it.measuredWidth + padding + parent.paddingLeft, it.top.toFloat()) timelineView.layout(0, 0, timelineView.measuredWidth, it.measuredHeight) } } timelineView.draw(c) c.restore() } + c.restore() } } \ No newline at end of file