MPAndroidchart YAxis标签在YAxis格式化程序更改时获得额外的,不必要的填充

时间:2018-03-15 09:19:03

标签: android mpandroidchart

当我添加一个具有不同数据类型(%)的新集合时,我正在将右轴格式化程序更新为另一个。之后,我正在更新LineData并在图表上调用invalidate()。 看起来很标准,但效果如下: [https://s3-eu-west-1.amazonaws.com/uploads-eu.hipchat.com/157498/3183982/4bvTKP8iwHO29ap/didd.png](screenshot)

这里是代码:(在继承自LineChart的类的范围内)

    override fun setData(data: LineData, xAxisFormatter: IAxisValueFormatter?, leftAxisFormatter: IAxisValueFormatter?, rightAxisFormatter: IAxisValueFormatter?) {


    xAxisFormatter?.let { xAxis.valueFormatter = it }
    leftAxisFormatter?.let { axisLeft.valueFormatter = it }
    rightAxisFormatter?.let { axisRight.valueFormatter = it }

    this.data = data
    invalidate()
}

更新后的底部是一个。可以发现正确的间距差异吗?这很烦人,打破了UX :( 知道为什么吗?

1 个答案:

答案 0 :(得分:0)

我发现,这个额外的间距是由lib计算的。它从整个图表范围内的标签的最大可能宽度开始。在这种情况下,图表中的最大值为732000,带有该值的%label看起来像“73200000%” - 它会占用大量空间,因此间距很大......这个值的另一个原因是其他轴,但我认为这是一个库错误。

我通过更新右轴标签格式化程序来处理它,以智能方式处理大数字,因此计算的字符串可以更短。它有点帮助。