我使用CandleStick图表。我需要让最后一根蜡烛实时更新它的CLOSE值。我尝试过的:
CandleEntry lastEntry = getCandleData().getDataSetByIndex(0).getEntryForXIndex(candleDataSetEntryCount);
lastEntry.setClose(newClose);
getCandleData().notifyDataChanged();
notifyDataSetChanged();
invalidate();或(尝试删除最后一个条目并添加一个新条目而不是它)
getCandleData().getDataSetByIndex(0).removeLast();
getCandleData().notifyDataChanged();
notifyDataSetChanged();
getCandleData().addXValue("0");
getCandleData().addEntry(new CandleEntry(getCandleData().getDataSetByIndex(0).getEntryCount(), oldHigh, oldLow, oldOpen, newClose), 0);
notifyDataSetChanged();
invalidate();如果我只删除最后一个条目或添加一个新条目,代码就会起作用,但当我尝试用新条目替换旧条目时,代码就不起作用了。附注:如果我记录“更改”项的值-它实际上是更改的,似乎是用旧的像素数据绘制的。
发布于 2016-04-14 15:55:21
我终于找到了问题所在。lib中有一个bug,lib没有画出最后一根蜡烛。它在倒数第二个条目处停止。问题出在计算drawDataSet()方法中的“maxx”值。
变化
while ( maxx < entries.size() -1 && entries.get(maxx).getXIndex() < mMaxDisplayedIndex+1 ) maxx++;至
while ( maxx <= entries.size() -1 && entries.get(maxx).getXIndex() <= mMaxDisplayedIndex+1 ) maxx++;在此之后,chart绘制最后一个条目,您可以轻松地访问最后一个条目,更改它的值,调用notifyDataSetChanged()和invalidate()。
https://stackoverflow.com/questions/36574261
复制相似问题