Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MPAndroidChart:水平条形图仅在第一次显示时离开屏幕运行_Android_Mpandroidchart - Fatal编程技术网

MPAndroidChart:水平条形图仅在第一次显示时离开屏幕运行

MPAndroidChart:水平条形图仅在第一次显示时离开屏幕运行,android,mpandroidchart,Android,Mpandroidchart,我正在使用水平条形图显示来自API调用的数据。第一次运行呼叫时,图表会在显示时从屏幕上消失: public void displayBarChart() { barChart.setData(getBarData()); barChart.setTouchEnabled(false); barChart.setFitBars(true); barChart.getLegend().setEnabled(false); barChart.getDescrip

我正在使用
水平条形图显示来自API调用的数据。第一次运行呼叫时,图表会在显示时从屏幕上消失:

public void displayBarChart() {
    barChart.setData(getBarData());
    barChart.setTouchEnabled(false);
    barChart.setFitBars(true);
    barChart.getLegend().setEnabled(false);
    barChart.getDescription().setEnabled(false);

    configureXAxis();
    configureYAxis();

    barChart.invalidate(); // refresh
}

如果我重新提交呼叫,图表现在大小正确:

当我的应用收到成功的网络响应时,将执行以下代码(不显示帮助器方法):

条形图的布局代码为:

<com.github.mikephil.charting.charts.HorizontalBarChart
            android:id="@+id/bar_chart"
            android:layout_width="match_parent"
            android:layout_height="80dp"
            android:layout_marginBottom="8dp" />
有人知道为什么重新排序对于条形图的正确显示很重要吗

private void configureXAxis() {
    final XAxis xAxis = barChart.getXAxis();

    xAxis.setDrawAxisLine(false); // no axis line
    xAxis.setDrawGridLines(false); // no grid lines
    xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
    xAxis.setLabelCount(2);
    xAxis.setTextSize(16f);

    xAxis.setValueFormatter(new IAxisValueFormatter() {
        @Override
        public String getFormattedValue(final float value, final AxisBase axis) {
            return labels.get((int) value);
        }
    });
}