Как слушать событие завершения прокрутки в mpandroidchart.
Я переопределил OnChartGestureListener и OnChartValueSelectedListener, но, похоже, это не работает. Метод onChartTranslate() получает обратный вызов даже после завершения прокрутки.
onChartGestureStart() вызывается, когда пользователь касается диаграммы, а onChartGestureEnd() вызывается, когда пользователь перестает касаться диаграммы.
Итак, мне нужно поймать событие, которое вызывается, когда прокрутка заканчивается.
Итак, не могли бы вы рассказать, как прослушивать конец прокрутки линейной диаграммы в mpandroidchart.
Вам нужно сделать следующее:
@Override
public void onChartGestureEnd(MotionEvent me, ChartTouchListener.ChartGesture lastPerformedGesture)
{
if (data.getEntryCount() == (int) chart.getHighestVisibleX())
{
// Do your work here
Toast.makeText(getContext(),"Hello Scroll to end check working",Toast.LENGTH_LONG).show();
}
}
Это проверит, достиг ли ваш скролл последнего значения на оси x. Вам может потребоваться небольшая настройка, но это способ сделать это.
Спасибо за Ваш ответ. OnChartGestureEnd вызывается, когда пользователь снимает палец с диаграммы. Но он не может послушать, прокручивается диаграмма или нет. Я хочу послушать, закончилась ли прокрутка графика. Не могли бы вы помочь мне в этом
Проверка внутри проверяет, закончили ли вы прокрутку. Я знаю, что это сработает, когда пользователь уберет палец с экрана, но внутренняя проверка проверяет, прокручена ли диаграмма до конца по оси x или нет. Внедрите это и проверьте, работает он или нет, тогда вы поймете, о чем я говорю!
Спасибо за ответ. Я пробовал твой код. Я не хочу проверять, дошла ли прокрутка до конца диаграммы (последнее значение на оси x). Мое требование - получить центральное значение диаграммы после завершения события прокрутки. Например, в диаграмме может быть 1000 записей. Когда пользователь прокручивает и событие прокрутки заканчивается около 500-й записи в диаграмме, мне нужно, чтобы этот конкретный порт просмотра был видим для пользователя, чтобы получить центральное значение. Я понимаю, могу ли я прикрепить изображение, касающееся моих требований, братан? Спасибо
это сработало для меня проверил начало и конец прокрутки на графике
chart.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (!(chart.getLowestVisibleX() == chart.getXAxis().getAxisMinimum() || chart.getHighestVisibleX() == chart.getXAxis().getAxisMaximum())){
// Do your work here
Toast.makeText(getContext(),"Hello Scroll to end check working",Toast.LENGTH_LONG).show();
return false;
}
});
более лучший способ - использовать собственный слушатель библиотеки с такой логикой, как:
override fun onChartTranslate(me: MotionEvent?, dX: Float, dY: Float) {
if (dX > 0){
//backward dragging
}
else if (mChart.highestVisibleX == mChart.xAxis.axisMaximum){
//forward dragging reached at max (can not be dragged more)
}
}
Можете сослаться по этой ссылке github.com/PhilJay/MPAndroidChart/wiki/The-Axis