You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MPAndroidChart饼图图例被截断 开启isWordWrapEnabled未生效如何解决

问题解决方法

MPAndroidChart的isWordWrapEnabled属性仅在图例水平排列、位于图表顶部/底部时才会生效,你当前的配置缺少图例位置、可绘制宽度限制两个必要配置,修改代码如下:
在你的createChart方法中,替换原有图例相关配置,补充以下代码:

binding.pieChart.apply {
    isDrawHoleEnabled=false
    legend.apply {
        // 设置图例位置为图表底部水平居中
        verticalAlignment = Legend.LegendVerticalAlignment.BOTTOM
        horizontalAlignment = Legend.LegendHorizontalAlignment.CENTER
        orientation = Legend.LegendOrientation.HORIZONTAL
        // 开启自动换行
        isWordWrapEnabled = true
        // 限制图例最大可用宽度为图表宽度的90%(可自行调整比例)
        maxSizePercent = 0.9f
        // 可选:调整条目尺寸、间距优化显示效果
        formSize = 12f
        xEntrySpace = 10f
        yEntrySpace = 5f
    }
    // 强制重新计算图表布局,让配置生效
    calculateOffsets()
    data = PieData(dataSet)
    invalidate()
}

如果调整后还是有超长标签被截断的情况,可以手动给长标签插入换行符\n强制换行,比如对PieEntry的label做预处理:

val pieEntry= chartData.map { 
    val wrapName = if (it.name.length > 8) {
        it.name.replaceRange(8,8,"\n")
    } else it.name
    PieEntry(it.equity, wrapName) 
}

内容的提问来源于stack exchange,提问作者WISHY

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 14:27:00