在Flutter应用中,当我按下应用栏上的刷新图标按钮时,我希望重新加载Webview页面。我正在使用官方的webview_flutter,并且不想使用flutter_webview_plugin,因为我有一个侧边抽屉。有什么方法可以刷新Webview页面吗?
我尝试使用setState()来重建相同的页面,但是应用程序没有重新构建。我还尝试过使用navigator.push(),但是这会导致全屏幕Webview并覆盖侧边抽屉和应用栏。
以下是我的Webview小部件:
我尝试使用setState()来重建相同的页面,但是应用程序没有重新构建。我还尝试过使用navigator.push(),但是这会导致全屏幕Webview并覆盖侧边抽屉和应用栏。
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',
);
}
}