MpandroidChart CombinedChart Загрузите больше данных свечей: прыжки с диаграммами и увеличиваются, когда нагрузка на свеAndroid

Форум для тех, кто программирует под Android
Anonymous
MpandroidChart CombinedChart Загрузите больше данных свечей: прыжки с диаграммами и увеличиваются, когда нагрузка на све

Сообщение Anonymous »

Я работаю с MpandroidChart (CombinedChart) для приложения криптовалюты (Android, Kotlin). Моя диаграмма представляет собой типичную диаграмму свечей, похожая на биранс (Candlestick + том ниже) с поддержкой «загружать больше»: < /p>

[*] Когда пользователь прокручивается к левой части (Start), я называю API, чтобы получить более старые данные и предотвратить его в диаграмму и нагрузку. Работа: < /p>

Я добавляю новые данные в начало моего списка свечей (элементы) < /code>, затем обновление
Candledataset и Call Invalidate () < /code>. < /li>
Я поддерживаю видимый диапазон и пытаюсь сохранить одинаковое количество светлей
viSible. /> Однако у меня есть две большие проблемы: < /p>

Диаграмма прыгает и выглядит «задержкой» или «дрожание» сразу после вставки новых данных
. /> < /ol>
Пример код: < /p>
private fun createCandleDataSet(
items: List,
color: ChartCandleColorModel
): CandleDataSet {
val candleEntries = items.mapIndexed { index, kline ->
CandleEntry(index.toFloat(), kline.h, kline.l, kline.o, kline.c)
}
return CandleDataSet(candleEntries, "Candles").apply {
axisDependency = YAxis.AxisDependency.RIGHT
shadowWidth = 0.31f
decreasingColor = color.decreasingColor.toArgb()
decreasingPaintStyle = Paint.Style.FILL
increasingColor = color.increasingColor.toArgb()
increasingPaintStyle = Paint.Style.FILL
neutralColor = color.neutralColor.toArgb()
setDrawValues(false)
shadowColorSameAsCandle = true
barSpace = 0.1f
}
}

fun onLoadMore(newData: List) {
items = newData + items // prepend new data
combinedChart.data = CombinedData().apply {
setData(CandleData(createCandleDataSet(items, color)))
// ... other data (volume, MA, etc)
}
combinedChart.notifyDataSetChanged()
combinedChart.invalidate()
// Set visible range
combinedChart.setVisibleXRangeMinimum(numberCandleVisible)
combinedChart.setVisibleXRangeMaximum(numberCandleVisible)
// (I try moving to a specific X after load more but still jumpy)
}
< /code>
Что я хочу: < /strong> < /p>

При загрузке большего количества свечей я хочу, чтобы диаграмма сохранила текущий видимый диапазон и положение (то есть, свечи, которые пользователь смотрит на то же место, просто больше появляется). или эффект «увеличить» - просто плавно придайте больше данных и сохраняйте Zoom без изменений. /> Пробое использовал moveviewTox (), oveyViewToAnimated () и т. Д. После загрузки большей, но все же не гладко. /> Вопрос: < /strong> < /p>

Как я могу плавно считать данные к началу комбинированного чарта (mpandroidchart), без диаграммы, увеличивая или непреднамеренно Видимый рентгенограмма и позиция просмотра после добавления новых записей в начале? />
Все нагрузки больше логических работ - только гладкость/позиционирование.>

Подробнее здесь: https://stackoverflow.com/questions/797 ... oms-out-wh

Вернуться в «Android»