如何获取xAxis标签的onClickListener
?如果无法做到这一点,是否有其他方法可以在xAxis标签上接收点击事件?
答案 0 :(得分:1)
xAxis标签实际上不是View
的实例。相反,它们由MPAndroidChart直接渲染到画布上。因此,您无法获得OnClickListener
。
相反,实现自定义的方法是实现自定义OnChartGestureListener
。该类的javadoc为here
mChart.setOnChartGestureListener(new MyChartGestureListener());
在MyChartGestureListener
中,您将覆盖onChartSingleTapped(MotionEvent me)
:
@Override
public void onChartSingleTapped(MotionEvent me) {
float tappedX = me.getX();
float tappedY = me.getY();
MPPointD point = mChart.getTransformer(YAxis.AxisDependency.LEFT).getValuesByTouchPoint(tappedX, tappedY);
Log.d(TAG, "tapped at: " + point.x + "," + point.y);
}
上面的代码段显示了如何从MotionEvent
获取x和y值。然后,您需要一些逻辑来检查您是否单击一个标签而不是图表的另一部分。也许是有条件的:
if ((point.y) < labelYValue) {
Log.d(TAG, "tapped on label for x-value: " + point.x);
}
如果您愿意,也可以使用y
中的原始MotionEvent
。