Живые данные MPAndroidChart не отображаются без начальных границ

Я должен отображать данные в реальном времени в приложении. Я выбрал MPAndroidChart как библиотеку для диаграмм.

Но без настроек начальный набор данных с записями или минимальной установкой оси и максимальной осью (ось x) моя диаграмма не отображается (с этими настройками я не могу прокручивать диаграмму). Я почти уже скопировал весь код из примера, но он все еще невидим (пример начинается без границ оси x и работает хорошо):

https://github.com/PhilJay/MPAndroidChart/blob/master/MPChartExample/src/com/xxmassdeveloper/mpchartexample/RealtimeLineChartActivity.java

Вот пример с фиксированным max / min X Макс. Минимальная фиксированная диаграмма

Вот пример ошибки, данные не показаны: Нет данных

Все внутри фрагмента в viewpager:

Вот код строки инициализации:

line_chart.apply { description.apply { isEnabled = true text = "Live chart" } setTouchEnabled(true) isDragEnabled = true setScaleEnabled(true) setDrawGridBackground(false) setPinchZoom(true) data = LineData().apply { setValueTextColor(Color.BLACK) } // THIS: // data = LineData(dataset("Simple").apply { // for (i in 1..10) { // addEntry(Entry(i.toFloat(), i.toFloat())) // } // }) legend.apply { form = LINE textColor = Color.BLACK } xAxis.apply { textColor = Color.BLACK setDrawGridLines(false) setAvoidFirstLastClipping(true) isEnabled = true granularity = 5f axisMinimum = 0f axisMaximum = 20f setValueFormatter { value, _ -> Date(value.toLong()).simpleSecondsFormat() } } axisLeft.apply { textColor = Color.BLACK // OR THIS: //axisMinimum = 0f //axisMaximum = 12f setDrawGridLines(true) } axisRight.isEnabled = false setVisibleXRangeMaximum(100f) } 

Код для создания набора данных:

 fun dataset(label: String): LineDataSet = LineDataSet(null, label).apply { axisDependency = LEFT color = Color.BLACK setCircleColor(Color.RED) lineWidth = 2f circleRadius = 4f fillAlpha = 65 fillColor = Color.RED highLightColor = Color.GREEN valueTextColor = Color.RED valueTextSize = 9f setDrawValues(true) } 

Данные поступают из магазина, используя RxJava2:

 .observeOn(AndroidSchedulers.mainThread()) .doOnNext { Timber.d("Entry: $it, timestamp: ${it.timestamp}") } .doOnNext { line_chart.data.apply { val dataSet = getDataSetByLabel(it.macAddress, true) ?: dataset( it.macAddress).also { addDataSet(it) } addEntry(Entry(it.timestamp.toFloat(), it.energy), getIndexOfDataSet(dataSet)) notifyDataChanged() } } .doOnNext { line_chart.apply { notifyDataSetChanged() setVisibleXRangeMaximum(120f) invalidate() } } 

Благодаря!

Случайно исправлена ​​проблема, удалив строку setVisibleXRangeMaximum(100f) из первого фрагмента.

Давайте будем гением компьютера.