项目需求需要设置默认选中,搞了挺久,折腾出来一个解决方案,
在饼图初始化全部配置后,也就是最后设置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 !!!")
}
————————————————
版权声明:本文为CSDN博主「_东风笑西风」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yeyuewushang/article/details/118092058