我已设法使用MP Android Chart创建折线图,并希望创建一个可拖动的线来设置限制。因此,如果值超过线值,则用户会收到警报。我的用例类似于Android系统数据使用限制。
我遇到了LimitLines - https://github.com/PhilJay/MPAndroidChart/wiki/The-Axis并使用触摸事件回调拖动https://github.com/PhilJay/MPAndroidChart/wiki/Interaction-with-the-Chart
我的问题是我是否可以动态地在对translate(onChartTranslate)事件的响应上添加限制线,以便我可以模拟限制设置?这比尝试重载MarkerView更好吗?
答案 0 :(得分:0)
我设法通过使用 temp
侦听拖动事件的开始和结束来创建可拖动(水平)LimitLine
:
OnChartGestureListener
和一个 chart.onChartGestureListener = object: OnChartGestureListener {
override fun onChartGestureEnd(me: MotionEvent?, lastPerformedGesture: ChartTouchListener.ChartGesture?) {
if (lastPerformedGesture == ChartTouchListener.ChartGesture.DRAG && limitLineDragEnabled) {
me?.let {
displayLimitLine(me)
}
limitLineDragEnabled = false
}
}
override fun onChartLongPressed(me: MotionEvent?) {
if (binding.chart.isFullyZoomedOut) {
limitLineDragEnabled = true
me?.let {
displayLimitLine(me)
}
}
}
}
在拖动开始和结束之间捕捉 ChartTouchListener
(遗憾的是,MotionEvents
无法帮助我):
OnChartGestureListener