我想显示足迹标记,并更改为事件标记,然后在按下按钮时返回。 当我清除标记时,大小为0,但不会从地图中删除。 因此,当我添加新的时,什么也没发生。
我的initState
modelo10 = @(t,y) [ y(2) - y(3); -3*y(2) - 5*sin(omega*y(1)); y(1)*y(2) ];
[t,y] = ode45(modelo10, [0,20], [0,4,1]);
我的地图在堆栈中
@override
void initState() {
super.initState();
_listToMarkersTrails();
isTrailsMode = true;
message = "Go to Events";
}
我的_getbutton()方法
Stack(
children: <Widget>[
map,
Positioned(top: 5, right: 5, child: _getButton())
],
),
我的_changeMarkers()方法
RaisedButton _getButton() {
if (isTrailsMode) {
return RaisedButton(
color: Colors.green,
onPressed: () => _changeMarkers(),
child: Text("Change to Events"),
);
} else {
return RaisedButton(
color: Colors.blue,
onPressed: () => _changeMarkers(),
child: Text("Change to Trails"),
);
}
}
我的listToMarkers-方法
void _changeMarkers() {
setState(() => map.markers.clear());
if (isTrailsMode) _listToMarkersTrails();
else _listToMarkersEvents();
setState(() => isTrailsMode = !isTrailsMode);
}
当我检查值时,清除后,markers.lenght = 0,但地图上的所有标记均未删除。 我应该添加什么?控制器?
提前谢谢!
编辑 我忘了补充,这是Flutter(飞镖)。
答案 0 :(得分:0)
您不需要控制器。 GoogleMap软件包的版本0.3.0已更改,标记现在是小部件,并且GoogleMap小部件在其markers属性中采用了Set of Markers。
您需要做的是,在您的状态下设置一组标记,将其设置为GoogleMap小部件的markers属性,然后调用setState对该集合进行突变。
这将使框架计划重新生成,因此将使用新的标记集再次构建GoogleMap。检查我在这篇文章中的答案以查看代码:Adding markers dynamically to flutter google map
注意:根据此meta post,我已将我的评论发布为答案。