flutter - 如何在flutter中向webview添加刷新指示器?
问题描述
我在我的应用程序中使用官方 webview 包来显示 webview,但问题是我无法使用刷新指示器小部件,我查找了许多解决方案,甚至在 github 上打开了问题,但我没有得到任何结果
如果有人告诉我如何在 webview 小部件上方添加可滚动小部件而不影响 webview 滚动,我将非常感激。
感谢您的时间。
解决方案
以下代码将帮助您在 Webview 的上方显示 RefreshIndicator。如果以下代码与您的用例匹配,则可以使用它们。;)
return RefreshIndicator(
onRefresh: () async => Future.delayed(Duration(seconds: 3)),
child: SingleChildScrollView(
physics: AlwaysScrollableScrollPhysics(),
scrollDirection: Axis.vertical,
child: Container(
height: viewHeight, // MediaQuery.of(context).size.height.
width: viewWidth, // MediaQuery.of(context).size.width.
child: WebView(
initialUrl: 'https://www.google.co.in/?gws_rd=ssl',
javascriptMode: JavascriptMode.unrestricted,
onWebViewCreated: (WebViewController webViewController) {
_controller.complete(webViewController);
},
javascriptChannels: <JavascriptChannel>[
_toasterJavascriptChannel(context),
].toSet(),
navigationDelegate: (NavigationRequest request) {
if (request.url.startsWith('https://www.youtube.com/')) {
print('blocking navigation to $request}');
return NavigationDecision.prevent;
}
print('allowing navigation to $request');
return NavigationDecision.navigate;
},
onPageStarted: (String url) {
print('Page started loading: $url');
},
onPageFinished: (String url) {
print('Page finished loading: $url');
},
gestureNavigationEnabled: true,
),
),
),
);
推荐阅读
- python - 删除熊猫中每个国家/地区的变量为 nan 的行
- ios - TestFlight - 从测试人员的设备中删除/禁用应用程序
- javascript - 将 JS getCurrentPosition 传递给全局变量
- python - python manage.py runserver 在 pycharm 中不起作用
- node.js - 从通过管道传输到 Nodejs 的 ffmpeg 流跟踪粒度持续时间
- flutter - 如何在颤动中显示没有 Context 对象的 Snackbar?
- python - X.shape[1] = 2 应该等于9,训练时的特征个数
- excel - Selenium Web 驱动程序从下拉列表中选择选项
- java - 我使用@Query 和 Pageable 有错误:只有在通过引用列名的表达式进行排序时才允许使用变量
- java - 如何从 jenkinsFile 传递多个参数,如 env、凭据、黄瓜标签