【问题标题】:Flutter flutter_inappwebview "onEnterFullscreen"颤振颤振_inappwebview“onEnterFullscreen”
【发布时间】:2021-03-26 13:27:25
【问题描述】:

当用户点击全屏视频时,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;
                     });
                   },
                 ),
               ),
             ),
           ]
         )
       ),
    

当页面加载时,手机自动横屏,我收到这个错误。

我想要的是,当用户点击全屏时,视频自动横向

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    问题是onEnterFullscreen 正在等待(InAppViewController) =&gt; void,但您正在分配AutoOrientation.landscapeAutoMode() 的结果。

    onEnterFullscreen: AutoOrientation.landscapeAutoMode(),
    

    因此,每次调用 build 方法时都会评估该函数。这就是你有这两种奇怪行为的原因:

    • 加载时自动横向
    • 类型不匹配导致异常

    要解决这个问题,您需要以这种方式分配回调:

    onEnterFullscreen: (controller) { AutoOrientation.landscapeAutoMode() },
    

    【讨论】:

      猜你喜欢
      • 2021-07-04
      • 2019-01-10
      • 1970-01-01
      • 2019-07-14
      • 2020-10-02
      • 2021-04-11
      • 2021-10-12
      • 2020-08-12
      • 1970-01-01
      相关资源
      最近更新 更多