flutter - 颤振颤振_inappwebview“onEnterFullscreen”
问题描述
当用户单击全屏视频时,flutter flutter_inappwebview 会旋转为横向。在文档中 flutter_inappwebview 说。
onEnterFullscreen:当前页面进入全屏模式时触发的事件。
onExitFullscreen:当前页面退出全屏模式时触发的事件。
Container( height: globals.screenHeight * 0.25, color: Colors.white, child: Column(children: <Widget>[ Expanded( child: Container( margin: const EdgeInsets.all(0.0), decoration: BoxDecoration( border: Border.all(color: Colors.blueAccent)), child: InAppWebView( initialUrl: "http://URL/play.html?name=123456789", initialHeaders: {}, onWebViewCreated: (InAppWebViewController controller) { webView = controller; }, onEnterFullscreen: AutoOrientation.landscapeAutoMode(), onLoadStart: (InAppWebViewController controller, String url) { setState(() { this.url = url; }); }, onLoadStop: (InAppWebViewController controller, String url) async { setState(() { this.url = url; }); }, onProgressChanged: (InAppWebViewController controller, int progress) { setState(() { this.progress = progress / 100; }); }, ), ), ), ] ) ),
当页面加载时,手机自动横向,我收到了这个错误。
我想要的是,当用户单击全屏时,视频自动横向
解决方案
问题是onEnterFullscreen
正在等待 a(InAppViewController) => void
但您正在分配AutoOrientation.landscapeAutoMode()
.
onEnterFullscreen: AutoOrientation.landscapeAutoMode(),
因此,每次build
调用该方法时都会评估该函数。这就是你有这两种奇怪行为的原因:
- 加载时自动横向
- 异常,因为类型不匹配
为了解决这个问题,您需要以这种方式分配回调:
onEnterFullscreen: (controller) { AutoOrientation.landscapeAutoMode() },
推荐阅读
- flutter - Dart 从列表中删除日期范围
- python - 如何加快迭代速度?
- json - 从政府网站检索数据 - 通过表单或直接通过 API
- installation - CSIDL_COMMON_DOCUMENTS:拒绝访问
- python - 识别网格粒子所属
- mql4 - 我需要一些关于如何使用 iCustom() 函数来检测 mql4 中的颜色的帮助
- c - 在 MathGL 中如何在数学运算后获取数组的值
- java - 在我的情况下,通过 HTTP-Request 同步检索数据的最佳方式?
- ios - 什么是在 swiftUI 中创建用户模型的最佳方法
- c++ - 就时间复杂度而言,堆排序/优先级队列是否比 C++ 中的映射(STL 中的有序映射)更好?