在Flutter中我们经常使用PlatformView来进行原生组件的绘制,但是倘若使用setState()进行页面刷新时候,虽然页面刷新了,但是PlatformView还是使用的之前的组件。这种情况一般出现在PlatformView组件中请求数据然后再进行显示的时候。这时候即使刷新了,页面依然显示上一次的内容。解决方式也比较简单,给原生组件设置一个唯一的key就好了。通过唯一的key来使两次对比的内容不一样,将上一次的给销毁掉,示例代码如下:
AndroidView(
key: UniqueKey(),//使用唯一key
viewType: "test",
creationParams: {
'w':w,
'h':h
},
creationParamsCodec: const StandardMessageCodec(),
)