【发布时间】:2019-12-04 13:13:27
【问题描述】:
在 Flutter 应用程序中,当我按下应用程序栏上的刷新图标按钮时,我想重新加载 Webview 页面。我正在使用官方的 webview_flutter 并且不想使用 flutter_webview_plugin,因为我有一个侧抽屉。关于如何刷新网页视图页面的任何想法?
我尝试使用 setState() 重建同一页面,但应用程序不会自行重建。我也尝试过使用 navigator.push() 但这会指向全屏 web 视图并覆盖抽屉和应用栏。
Widget build(BuildContext context){
return Scaffold(
appBar: AppBar(
title: Text(widget.drawerItems[_selectedDrawerIndex].title, style: TextStyle(
shadows: <Shadow>[
Shadow(
offset: Offset(1.0, 1.0),
blurRadius: 10.0,
color: Color(0xff185B1E),
),
],
color: Colors.white,
),
),
backgroundColor: Color(0xff9ABDFF),
iconTheme: IconThemeData(color: Colors.white),
actions: <Widget>[
IconButton(
icon: Icon(Icons.refresh),
color: Colors.white,
onPressed: () {
setState((){
_selectedDrawerIndex = 3;
//refresh webview here
});
},
),
]
body: _getDrawerItemWidget(_selectedDrawerIndex),
//_getDrawerItemWidget refers to a webview page
),
}
下面是我的 webview 小部件:
class Web1 extends StatelessWidget{
@override
Widget build(BuildContext ctxt) {
return WebView(
key: UniqueKey(),
javascriptMode: JavascriptMode.unrestricted,
initialUrl: 'http://www.google.com',
);
}
}
【问题讨论】: