Как удалить отступы со всех сторон (включая верхнюю и нижнюю) горизонтальной диаграммы (MPAndroidChart)?

Я пытаюсь создать HorizontalBarChart, который охватывает весь родительский макет (LinearLayout внутри ConstraintLayout). Вот мой код:

public static HorizontalBarChart horizontalBarChartSet(Context context, HorizontalBarChart mChart, float value) {
    mChart.setDrawValueAboveBar(false);
    mChart.getDescription().setEnabled(false);
    mChart.setPinchZoom(false);
    mChart.setDrawGridBackground(false);

    //Vertical Axis
    mChart.getXAxis().setEnabled(false);

    //Horizontal Axis 1
    YAxis yl = mChart.getAxisLeft();
    yl.setDrawAxisLine(false);
    yl.setDrawGridLines(false);
    yl.setDrawLabels(false);
    yl.setAxisMinimum(0f);
    yl.setAxisMaximum(100f);

    //Horizontal Axis 2
    YAxis yr = mChart.getAxisRight();
    yr.setDrawAxisLine(false);
    yr.setDrawGridLines(false);
    yr.setDrawLabels(false);
    yr.setAxisMinimum(0f);
    yr.setAxisMaximum(100f);

    //Data
    ArrayList<BarEntry> values = new ArrayList<BarEntry>();
    values.add(new BarEntry(0, value));

    BarDataSet set = new BarDataSet(values, "");

    ArrayList<IBarDataSet> dataSets = new ArrayList<IBarDataSet>();
    dataSets.add(set);

    BarData data = new BarData(dataSets);
    mChart.setData(data);

    //Highlight
    data.setHighlightEnabled(false);

    //Bar
    data.setBarWidth(0.8f);
    mChart.setFitBars(true);

    //Legend
    mChart.getLegend().setEnabled(false);

    //General
    mChart.setViewPortOffsets(0f,0f,0f,0f);
    mChart.setExtraOffsets(0f, 0f, 0f, 0f);

    //Animate
    mChart.animateY(2500);
    return mChart;
}

с помощью setViewPortOffsets(0f,0f,0f,0f); хотя удалите отступы слева и справа, но все еще есть некоторые отступы сверху и снизу, и когда я касаюсь панели, отступы слева и справа также возвращаются к значениям по умолчанию.

XML представления:

<android.support.constraint.ConstraintLayout
    android:id="@+id/constraintLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintVertical_bias="0.0">

        <com.github.mikephil.charting.charts.HorizontalBarChart
            android:id="@+id/percentage"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

    </LinearLayout>
</android.support.constraint.ConstraintLayout>

Вот скриншоты: Посмотрите на продукт питания ListView

Прежде чем я коснусь бар

После того, как я касаюсь бара

1 ответ

Пожалуйста, попробуйте

mChart.invalidate();

После добавления HorizontalBarChart в данных.

Другие вопросы по тегам