当前在使用AnyChart api生成饼图时遇到问题。我面临的问题是它能够在第一次生成饼图,但是在微调器上选择后,chartView变为空。我尝试使用调试模式从微调器中选择后检查进度,但是即使数据正确传递,它也可以成功运行。所以,我在想也许我需要做的只是刷新chartView。但是,我尝试过refreshDrawableState(),notfiy()和invalidate()仍然无法刷新chartView。
AnyChart资源:https://github.com/AnyChart/AnyChart-Android#pie-chart
第一次运行时
从微调框选择之后
这是我的编码
import React from 'react';
import Modal from 'react-modal';
const customStyles = {
content : {
}
};
Modal.setAppElement('#app')
export default class MealModal extends React.Component {
constructor(props) {
super(props);
}
render() {
return (
<Modal
isOpen={this.props.modalIsOpen}
onRequestClose={this.props.closeModal}
style={customStyles}
contentLabel="Meal Modal"
>
<div className="modal-wrapper">
<div className="container text-center">
<h1>Hello</h1>
<h2>ID of this modal is {this.props.modalId}</h2>
<h3>This is an awesome modal.</h3>
<button onClick={this.props.closeModal}>close</button>
</div>
</div>
</Modal>
)
}
}
答案 0 :(得分:0)
尝试在 CREATE INDEX ON:MemberTopics(member_id)
CREATE INDEX ON:MemberTopics(topic_id)
CREATE INDEX ON:GroupTopics(topic_id)
之后在Pie对象上调用方法invalidate()
。
代码应如下所示:
setData(Data)
这对我有用。
答案 1 :(得分:0)
很长一段时间后,我对这个话题做出了回应,但是由于我遇到了同样的问题,终于找到了解决问题的办法。
您需要做的是在活动或片段类中创建一个私有Pie属性,如下所示:
lateinit var pie: Pie
然后在onCreateView或实例中(取决于您是在进行活动还是在片段中),将Pie
属性设置为AnyChartView,如下所示:
pie = AnyChart.pie()
val anyChartView = root.findViewById(R.id.any_chart_view) as AnyChartView
anyChartView.setChart(pie)
然后在微调框onItemSelected
中,您只需要像这样更新pie
数据:
pie.data(data)
这将自动更新您的图表,您不需要在每次事件触发时都anyChartView.setChart(pie)
这样做