项目需求需要设置默认选中,搞了挺久,折腾出来一个解决方案,
在饼图初始化全部配置后,也就是最后设置data后进行修改
API:
public void highlightValue(float x, int dataSetIndex, boolean callListener) {
highlightValue(x, Float.NaN, dataSetIndex, callListener);
}
第一个参数x为 饼图的第几个色块的下标,
dataSetIndex :因为我只有一个饼图,这个地方就是0,
callListener:可以理解为是否触发饼图上的触摸事件,我设置了监听事件,需要在点击对应色块后,更新数据,所以就是true。
比如想要设置第二个色块默认选中放大
那就添加 highlightValue(1f,0,true)
我的需求是设置最大值默认放大。代码就是下面这样子:
pieList是暂存 PieEntry的 list
初始化饼图数据 private var pieList = ArrayList<PieEntry>() for (item in it) { pieList.add( PieEntry( item.rate.replace("%", "").toFloat() / 100, item.channel.plus(",").plus(item.gmv).plus(",").plus(item.rate) ) ) }
最后加上这段代码: try { val index = pieList.indexOfFirst { it.y == mPieData?.dataSet?.yMax } highlightValue(index.toFloat(), 0, true) } catch (e: Exception) { Logger.e("data is null or empty !!!") }