Удалить пустое место в MPAndroidChart HorizontalBar Chart - PullRequest
0 голосов
/ 09 февраля 2019

Я новичок в Android Dev, и я действительно изо всех сил пытаюсь понять, как заставить библиотеку вести себя так, как я хочу.

У меня есть вид переработчика и карты, как показано на скриншоте ниже с com.github.mikephil.charting.charts.HorizontBarChart в просмотре карты.

i.stack.imgur.com / pIlfd.jpg (извините, у меня нет представителя для публикации скриншота).

Серая область - это мое представление HorizontalBarChart.

В основном я хочу удалить все серые, поэтому при использовании wrap-содержимого карта не выходит за рамки размераизображение слева.

Я попытался установить для ExtraOffsets и ViewPortOffsets значение 0f, что не дает мне желаемого результата.

Вот мой Layout.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="0dp">

    <androidx.cardview.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto"
        android:id="@+id/gamelog_card_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="8dp"
        android:layout_marginTop="4dp"
        android:layout_marginBottom="4dp"
        android:layout_marginRight="8dp"
        card_view:cardBackgroundColor="@color/colorCardViewBackground"
        card_view:cardCornerRadius="0dp"
        card_view:contentPadding="0dp"
        card_view:elevation="0dp">

        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">

            <ImageView
                android:id="@+id/gamelog_heroimg"
                android:layout_width="60dp"
                android:layout_height="60dp">
            </ImageView>

            <TextView
                android:id="@+id/gamelog_hero"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:paddingTop="4dp"
                android:paddingLeft="8dp"
                android:layout_toRightOf="@id/gamelog_heroimg"
                android:textColor="@color/colorCardViewText"
                android:textSize="14sp"
                android:textStyle="bold"></TextView>

            <TextView
                android:id="@+id/gamelog_games"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_toLeftOf="@id/gamelog_wins"
                android:paddingTop="7dp"
                android:paddingRight="8dp"
                android:textColor="@color/colorCardViewText"
                android:textSize="11sp">
            </TextView>

            <TextView
                android:id="@+id/gamelog_wins"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:paddingRight="8dp"
                android:paddingTop="7dp"
                android:textColor="@color/colorCardViewText"
                android:textSize="11sp">
            </TextView>

            <com.github.mikephil.charting.charts.HorizontalBarChart
                android:id="@+id/gamelog_ratio_chart"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@id/gamelog_hero"
                android:layout_toRightOf="@id/gamelog_heroimg"
                android:paddingLeft="0dp"
                android:paddingTop="0dp"
                android:paddingRight="0dp"
                android:background="#c1c1c1"
                android:paddingBottom="0dp" />

        </RelativeLayout>
    </androidx.cardview.widget.CardView>

</RelativeLayout>

И мой java, относящийся к MPAndroidChart:

@Override
public void onBindViewHolder(MyViewHolder holder, final int position) {

    holder.mIMGView.setBackgroundColor(Color.parseColor(mColors.get(position)));

    holder.mIMGView.setImageResource(getResId(mIMG.get(position), R.drawable.class));
    holder.mHeroView.setText(mHeroes.get(position));
    holder.mHeroView.setTextColor(Color.parseColor(mColors.get(position)));
    holder.mGamesView.setText("Played: " + mGames.get(position));
    holder.mGamesView.setTextColor(Color.parseColor(mColors.get(position)));
    holder.mWinsView.setText("Won: " + mWins.get(position));
    holder.mWinsView.setTextColor(Color.parseColor(mColors.get(position)));

    ArrayList<BarEntry> wRatio = new ArrayList();
    wRatio.add(new BarEntry(0,mRatio.get(position)));
    BarDataSet barDataSet = new BarDataSet(wRatio,"");
    barDataSet.setColors(ContextCompat.getColor(holder.mRatioView.getContext(),R.color.colorBarWin));
    barDataSet.setBarShadowColor(ContextCompat.getColor(holder.mRatioView.getContext(),R.color.colorBarLoss));
    barDataSet.setDrawValues(false);
    barDataSet.setHighlightEnabled(false);
    barDataSet.setBarBorderWidth(0f);
    BarData ratioData = new BarData(barDataSet);

    ratioData.setBarWidth(0.4f);

    holder.mRatioView.setData(ratioData);
    holder.mRatioView.setDrawBarShadow(true);
    holder.mRatioView.setDrawValueAboveBar(false);
    holder.mRatioView.setPinchZoom(false);
    holder.mRatioView.setClickable(false);
    holder.mRatioView.setTouchEnabled(false);
    holder.mRatioView.setScaleEnabled(false);
    holder.mRatioView.setDragEnabled(false);

    holder.mRatioView.getDescription().setEnabled(false);

    holder.mRatioView.getLegend().setEnabled(false);

    holder.mRatioView.getXAxis().setEnabled(false);

    holder.mRatioView.getAxisLeft().setAxisMaximum(100f);
    holder.mRatioView.getAxisLeft().setAxisMinimum(0f);
    holder.mRatioView.getAxisLeft().setEnabled(false);

    holder.mRatioView.getAxisRight().setEnabled(false);

    holder.mRatioView.invalidate();

}

Любая помощь будет высоко оценена!

Спасибо, Райан.

Редактировать: я должен был упомянутьмы пытались установить viewportoffsets и extraoffsets равными 0 без эффекта.

И я знаю, что могу использовать индикатор выполнения, но на карте можно будет нажимать с более подробными статистическими диаграммами, и в этот момент мне нужно будет выяснить, каквсе равно сделайте это в MPAndroidChart.

...