diff --git a/library/src/main/java/com/dzeio/charts/ChartView.kt b/library/src/main/java/com/dzeio/charts/ChartView.kt index d48b004..bb07e95 100644 --- a/library/src/main/java/com/dzeio/charts/ChartView.kt +++ b/library/src/main/java/com/dzeio/charts/ChartView.kt @@ -108,15 +108,17 @@ class ChartView @JvmOverloads constructor(context: Context?, attrs: AttributeSet } - val bottom = xAxis.onDraw(canvas, rect.apply { - set(padding, 0f, width.toFloat() - padding, height.toFloat() - padding) - }) + var bottom = xAxis.getHeight() ?: 0f // right distance from the yAxis val rightDistance = yAxis.onDraw(canvas, rect.apply { set(padding, padding, width.toFloat() - padding, height.toFloat() - bottom - padding) }) + bottom = xAxis.onDraw(canvas, rect.apply { + set(padding, 0f, width.toFloat() - rightDistance - padding, height.toFloat() - padding) + }) + // chart draw rectangle rect.apply { set( diff --git a/library/src/main/java/com/dzeio/charts/axis/XAxis.kt b/library/src/main/java/com/dzeio/charts/axis/XAxis.kt index 327dee0..d79dfdf 100644 --- a/library/src/main/java/com/dzeio/charts/axis/XAxis.kt +++ b/library/src/main/java/com/dzeio/charts/axis/XAxis.kt @@ -5,7 +5,6 @@ import android.graphics.Color import android.graphics.Paint import android.graphics.Rect import android.graphics.RectF -import android.util.Log import com.dzeio.charts.ChartViewInterface import com.dzeio.charts.Entry import kotlin.math.roundToInt @@ -53,6 +52,12 @@ class XAxis( private val rect = Rect() + private var height: Float? = null + + override fun getHeight(): Float? { + return height + } + override fun getPositionOnRect(entry: Entry, drawableSpace: RectF): Double { return translatePositionToRect(entry.x, drawableSpace) } @@ -89,7 +94,7 @@ class XAxis( var maxHeight = 0f val graphIncrement = space.width() / (labelCount - 1) - val valueIncrement = (getDataWidth() / (labelCount - 1)).toDouble() + val valueIncrement = getDataWidth() / (labelCount - 1) for (index in 0 until labelCount) { val text = onValueFormat(x + valueIncrement * index) textPaint.getTextBounds(text, 0, text.length, rect) @@ -108,6 +113,7 @@ class XAxis( textPaint ) } + height = maxHeight + 32f return maxHeight + 32f } diff --git a/library/src/main/java/com/dzeio/charts/axis/XAxisInterface.kt b/library/src/main/java/com/dzeio/charts/axis/XAxisInterface.kt index daa9f55..e42df54 100644 --- a/library/src/main/java/com/dzeio/charts/axis/XAxisInterface.kt +++ b/library/src/main/java/com/dzeio/charts/axis/XAxisInterface.kt @@ -81,4 +81,9 @@ sealed interface XAxisInterface { * @return the final height of the XAxis */ fun onDraw(canvas: Canvas, space: RectF): Float + + /** + * return the height of the XAxis (available after first draw) + */ + fun getHeight(): Float? } \ No newline at end of file