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

Android中两个AnyChart图表仅最后一个可显示数据的问题求助

Android中两个AnyChart图表仅最后一个可显示数据的问题求助

嘿,我看你遇到了Android里两个AnyChart图表只有最后一个能正常显示数据的问题,我来帮你梳理下可能的原因和解决办法~

首先看你的布局文件,两个CardView嵌套的AnyChartView布局结构是没问题的,垂直LinearLayout分配了足够的空间,所以布局层面应该不是问题。重点要检查Java代码里的图表初始化逻辑:

可能的核心问题

你目前的setACOS()方法看起来是正常的,但大概率是setACP()方法里存在两个常见疏漏:

  1. 没有给第二个图表绑定独立的Chart实例:如果你在setACP()里复用了setACOS()里的cartesian1对象,那最后设置的图表会覆盖之前的,导致只有最后一个显示;
  2. 忘记调用setChart()方法绑定到第二个AnyChartView:如果没给barChartACP设置对应的Cartesian实例,它自然不会显示任何内容。

修正后的代码示例

补全并修正setACP()方法,确保每个图表都有独立的实例:

private void setACP() {
    // 获取第二个图表的View实例
    AnyChartView barChartACP = findViewById(R.id.barChartACP);
    // 为第二个图表创建独立的Cartesian对象,不能复用之前的cartesian1
    Cartesian cartesian2 = AnyChart.column();

    // 准备第二个图表的测试数据
    List<DataEntry> data2 = new ArrayList<>();
    data2.add(new ValueDataEntry("Product A", 75000));
    data2.add(new ValueDataEntry("Product B", 88000));
    data2.add(new ValueDataEntry("Product C", 92000));
    data2.add(new ValueDataEntry("Product D", 105000));

    // 配置柱状图和tooltip
    Column column2 = cartesian2.column(data2);
    column2.tooltip()
            .titleFormat("{%X}")
            .position(Position.CENTER_BOTTOM)
            .anchor(Anchor.CENTER_BOTTOM)
            .offsetX(0d)
            .offsetY(5d)
            .format("${%Value}{groupsSeparator: }");

    cartesian2.animation(true);
    cartesian2.title("Average Cost of Power");

    // 关键步骤:把创建好的图表实例绑定到第二个AnyChartView
    barChartACP.setChart(cartesian2);
    // 可选:手动触发刷新,确保图表渲染
    barChartACP.invalidate();
}

关键注意事项

  • 每个AnyChartView必须对应独立的Chart实例(比如各自的Cartesian、Pie等对象),绝对不能共用同一个实例;
  • 确保每个图表都调用了setChart(...)方法,将配置好的Chart实例传递给对应的AnyChartView;
  • 如果还是有显示问题,可以检查布局中CardView和AnyChartView的高度设置,确保没有被挤压或隐藏。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 10:24:51