我正在使用MPAndroidChart来创建分组条形图。一切都很好,但我无法正确显示MarkerView。
我想根据条目索引在MarkerView中显示一些信息,但我只能检索x或y值。
refreshContent方法
@Override
public void refreshContent(Entry e, Highlight highlight) {
Log.d("MARKER", "x:" + e.getX() + " | y:" + e.getY()
+ " | hx:" + highlight.getX() + " | hy:" + highlight.getY()
+ " | dataindex:" + highlight.getDataIndex()
+ " | datasetindex:" + highlight.getDataSetIndex());
super.refreshContent(e, highlight);
}
这是我的日志输出:
x:2.7349997 | y:65.0 | hx:2.7349997 | hy:65.0 | dataindex:1 | datasetindex:1
无论我点击哪个栏,数据索引始终为1。 Datasetindex根据组栏中的索引显示正确的值。
我意识到我可以使用getData()
中的Entry
方法,所以我为每个BarEntry使用了另一个构造函数:
new BarEntry(x, y, "extraData");
但是e.getData()
中的refreshContent
为空。
我做错了什么?
答案 0 :(得分:1)
诀窍在我的图表上,因为它是由条形图和折线图组成的。因此,当我点击我的图表中的某个点时,由于我的折线图中的点按,我收到refreshContent
事件。然后,如果我为每个折线图条目设置数据对象,现在它在refreshContent
方法上接收。但是我的解决方案是禁用突出显示到行数据集:
lineDataSet.setHighlightEnabled(false);
这样,图表上的每个点击都始终属于条形图。