AnyChart TreeMap не обновляет данные на экранеAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 AnyChart TreeMap не обновляет данные на экране

Сообщение Anonymous »

AnyChart TreeMap не обновляет данные экрана, несмотря на то, что набор данных был изменен. У меня есть следующий код:

Код: Выделить всё

 private void makeChart()
{
List data = new ArrayList();
List
> groups = chartActivity.getGroups();

// code skipped

data.add(new CustomTreeDataEntry(rootKey, null, rootKey));

List nonZero = groups.stream().filter(group -> group.second.intValue() != 0).collect(Collectors.toList());

for (Pair pair : groups)
{
Category c = pair.first;
String parent = c.getParent() == null ? rootKey : categories.stream()
.filter(item -> item.getId().equals(c.getParent()))
.findFirst()
.get()
.getName();
Log.d(this.getClass().getName(), "[makeChart] " + c.getName() + " " + pair.second.intValue());
data.add(new CustomTreeDataEntry(c.getName(), parent, c.getName(), pair.second.intValue(), c));
}

TreeMap treeMap = AnyChart.treeMap();
treeMap.data(data, TreeFillingMethod.AS_TABLE);

Title title = treeMap.title();
title.text(wp.getTitle());
title.enabled(true);
title.useHtml(true);
title.padding(0d, 0d, 20d, 0d);

treeMap.colorScale().colors(new String[]{
"#ffee58", "#fbc02d", "#f57f17", "#c0ca33", "#689f38", "#2e7d32"
});
treeMap.colorScale().ranges(colorScale);
treeMap.padding(10d, 10d, 10d, 20d);
treeMap.maxDepth(2d);
treeMap.hovered().fill("#bdbdbd", 1d);
treeMap.selectionMode(SelectionMode.NONE);
treeMap.setOnClickListener(new OnClickListener(new String[]{"category"})
{
@Override
public void onClick(Event event)
{
String uuid = event.getData().get("category");
chartActivity.bringTransactionsFragment(uuid);
}
});

treeMap.labels().useHtml(true);
treeMap.labels().fontColor("#212121");
treeMap.labels().fontSize(12d);
treeMap.labels().format(
"function() {\n" +
"      return this.getData('product') + ' ' + anychart.format.number(this.value, {groupsSeparator: ' '});\n" +
"    }");

treeMap.headers().format(
"function() {\n" +
"    return this.getData('product')\n" +
"  }");

treeMap.tooltip()
.useHtml(true)
.titleFormat("{%product}")
.format("function() {\n" +
"      return '₽' +\n" +
"        anychart.format.number(this.value, {\n" +
"          groupsSeparator: ' '\n" +
"        });\n" +
"    }");

anyChartView = root.findViewById(R.id.any_chart_view);
anyChartView.setChart(treeMap);}
Как видите, я каждый раз воссоздаю полную диаграмму. Но данные на экране не изменяются и не совпадают с данными в объекте data. Я попытался сделать диаграмму недействительной, но ничего нового не получил. Какой волшебный способ обновить экран графика?


Подробнее здесь: https://stackoverflow.com/questions/783 ... -on-screen
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»