WebView 到 SizedBox Flutter

2023-11-25

我想将自定义 webview 添加到 flutter 中的 sizedBox 中...我尝试这样做,但出现错误:

code:

@override
   Widget build(BuildContext context) {   
    SystemChrome.setEnabledSystemUIOverlays([SystemUiOverlay.bottom]);
    return new Scaffold(
      key: _scaffoldKey,
         floatingActionButton: new Row(
        mainAxisSize: MainAxisSize.min,
            children: <Widget>[
                new GestureDetector(
                  child: new Image.network("http://modernworfare.altervista.org/pause.png", width: 80.0,),
                  onTap: (){stop(); _showSnackBar();}, 
                ),
                new GestureDetector(
                  child: new Image.network("http://modernworfare.altervista.org/bg.png",width: 80.0,),
                  onTap: (){play(); _showSnackBar2();},
                ),
              ],
         ),
      backgroundColor: Colors.black,
      body: new ListView(
        children: <Widget>[
        new Column(
        children: <Widget>[
          new Image.network("https://scontent-mxp1-1.xx.fbcdn.net/v/t1.0-9/16864236_1836092593321492_1828236030296093399_n.jpg?_nc_cat=0&oh=817190c0ef6ac6e3076582905997f3e9&oe=5B81BFF9"),
          new Divider(),
          new Row(
            mainAxisAlignment: MainAxisAlignment.spaceEvenly,
            children: <Widget>[
              new Container(
              padding: new EdgeInsets.all(8.0),
              child: new Text("  WEBSITE  ", style: new TextStyle(color: Colors.white,)),
              decoration: new BoxDecoration(
                borderRadius: new BorderRadius.circular(10.0),
                border: new Border.all(
                  width: 4.0,
                  color: Colors.white,
                  ),
                ),
              ),
              new Container(
              padding: new EdgeInsets.all(8.0),
              child: new Text("  SOCIAL  ", style: new TextStyle(color: Colors.white,)),
              decoration: new BoxDecoration(
                borderRadius: new BorderRadius.circular(10.0),
                border: new Border.all(
                  width: 4.0,
                  color: Colors.white,
                  ),
                ),
              ),
              new Container(
              padding: new EdgeInsets.all(8.0),
              child: new Text("  SHOP  ", style: new TextStyle(color: Colors.white,)),
              decoration: new BoxDecoration(
               borderRadius: new BorderRadius.circular(10.0),
                border: new Border.all(
                  width: 4.0,
                  color: Colors.white,
                  ),
                ),
              ),
              new Container(
              padding: new EdgeInsets.all(8.0),
              child: new Text("  CONTACT  ", style: new TextStyle(color: Colors.white,)),
              decoration: new BoxDecoration(
               borderRadius: new BorderRadius.circular(10.0),
                border: new Border.all(
                  width: 4.0,
                  color: Colors.white,
                  ),
                ),
              )],
          ),
          new Text("hi",style: new TextStyle(color: Colors.white), ), 
          new SizedBox(
            height: 50.0,
            width: 600.0,
            child: webview.launch("url",
            )
          ),  
          ],
        )],
      ),
    );
  }

error:

参数类型“Future”无法分配给参数类型“Widget”。

有什么建议或想法吗? 可以这样做吗? 也许添加一个未来的构建者或类似的东西?


Issue:Webview 没有为您提供完整的高度来计算其高度,您需要在页面完成时找到总内容高度。

这是我从中找到的解决方案here

StreamBuilder<double>(
          initialData: 100,
          stream: streamController.stream,
          builder: (context, snapshot) {
            return Container(
              height: snapshot.data,
              child: WebView(
                initialUrl:
                    'data:text/html;base64,${base64Encode(const Utf8Encoder().convert(contentText))}',
                onPageFinished: (some) async {
                  double height = double.parse(
                      await _webViewController.evaluateJavascript(
                          "document.documentElement.scrollHeight;"));
                  streamController.add(height);

                },
                onWebViewCreated: (_controller) {
                  _webViewController = _controller;
                },
                javascriptMode: JavascriptMode.unrestricted,
              ),
            );
          }
        );

注意:我在这里使用了streambuilder来避免构建小部件时不必要的“setstate”。

请告诉我这个解决方案是否有效。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WebView 到 SizedBox Flutter 的相关文章

随机推荐

  • Visual Studio 2008 插件/加载项开发 - 入门

    和 关联这个计算器问题 我将如何创建自己的 Visual Studio 2008 插件 我查看了 MSDN 上的 Visual Studio 开发人员中心 但信息量巨大 项目类型繁多 我什至不知道从哪里开始 我应该从哪里开始寻找如果我想写一
  • na.locf 但不执行尾随 NA

    我有以下时间序列 gt y lt xts 1 10 Sys Date 1 10 gt y c 1 2 5 9 10 lt NA gt y 1 2011 09 04 NA 2011 09 05 NA 2011 09 06 3 2011 09
  • 如何在 Delphi 中以编程方式创建带有几个组件的表单

    我正在使用 Delphi 7 并尝试以编程方式创建表单 这是我的表单类存根 unit clsTStudentInfoForm interface uses Forms type TStudentInfoForm class TForm en
  • 为什么操作系统在内存足够的情况下却说无法给jvm分配内存

    我正在尝试使用以下命令启动一个新的 jvm java version 但是报错 There is insufficient memory for the Java Runtime Environment to continue Native
  • socket.io 套接字 ID 应该保密吗?

    我正在使用 socket io 开发一个 Web 应用程序 我目前正在使用套接字 ID 作为标识符 该标识符会广播给其他客户端 现在 这引发了安全问题 即该 ID 是否可用于劫持另一个用户会话 不幸的是 在网上很难找到这方面的任何信息 那么
  • 为什么分配给空列表(例如 [] = "")不会出错?

    在 python 3 4 中 我正在输入 并且它工作正常 没有引发异常 虽然当然 不等于 然后 也工作正常 但正如预期的那样引发了异常 但正如预期的那样引发了异常 发生什么了 你不是为了平等而比较 你是指派 Python 允许您分配给多个目
  • iOS模拟器不播放声音[重复]

    这个问题在这里已经有答案了 在 XCode 6 上 设备上一切正常 但在模拟器上 无法播放声音 这是我的快速代码 var url NSURL string http my url com sound mp3 var data NSData
  • 如何在 MySQL 数据库中存储 JSON 字符串

    我使用下面的代码将 JSON 数据存储在 MySQL 表中 如果 JSON 很短 它可以正常工作 但如果文本较长 则会中断 field json 是一个长文本 sql sprintf UPDATE mytable SET field jso
  • C# 获取控件在窗体上的位置

    当控件可能位于其他控件 如面板 内部时 是否有任何方法可以检索控件在表单中的位置 该控件的 Left 和 Top 属性只提供了它在其父控件中的位置 但是如果我的控件位于五个嵌套面板内 并且我需要它在窗体上的位置 该怎么办 快速示例 按钮 b
  • 为什么从 avi 容器解码帧并将其编码为 h264/mp​​4 不起作用?

    我开始使用 ffmpeg 我想将 avi 文件转换为 mp4 h264 文件 我读过很多帖子 包括this 但我找不到任何好的示例如何将帧保存到 mp4 文件 下面的代码是简化的代码 它从 avi 文件中解码帧并将其编码为 H264 mp
  • 内存中 C++ 对象的结构与结构

    如果我有一堂课如下 class Example Class private int x int y public Example Class x 8 y 9 Example Class 和一个结构如下 struct int x int y
  • 如何在Android P上使用apache http

    当我运行我的应用程序时安卓P设备 我收到一些这样的错误 java lang RuntimeException Unable to instantiate application com le android client LeApplica
  • 浮点数学有问题吗?

    考虑以下代码 0 1 0 2 0 3 gt false 0 1 0 2 gt 0 30000000000000004 为什么会出现这些不准确的情况 Binary 浮点数学就是这样 在大多数编程语言中 它基于IEEE 754 标准 问题的关键
  • 在 Angular2 (Typescript) 中实现动态路由 [重复]

    这个问题在这里已经有答案了 RouteConfig 类可用于装饰具有路由功能的组件 RouteConfig 并为该组件定义了某些路由定义 现在 问题是在运行时 动态 注入这些路由定义 原因是 假设我有一个应用程序 其中我必须显示 UI 并定
  • Selenium 元素选择器 - 我认为 xPath 最慢?

    我对一个公共网站进行了一些测试 看看是否可以发现一些不同 Selenium CSS 选择器的性能差异 我运行了一个包含五个节点的集线器 mac chrome local mac safari local mac ff local win7
  • Xcode 4.2 链接错误:libz 问题?

    将项目移至 Xcode 4 2 时 我在 Xcode 4 0 3 中编译和链接正常的项目上遇到了许多 Mach O 链接器未解决的错误 例如 crc32 expf 和 UnwindSjLj Register 我怀疑这可能是 libz 问题
  • CUDA:如何使用 -arch 和 -code 以及 SM 与 COMPUTE

    我仍然不确定在使用 nvcc 构建时如何正确指定代码生成的体系结构 我知道我的二进制文件中嵌入了机器代码和 PTX 代码 并且可以通过控制器开关进行控制 code and arch 或两者的组合使用 gencode 现在 根据this除了两
  • Facebook 应用程序适用于所有浏览器,但不适用于 IE8

    我正在开发一个 Facebook 应用程序 Stragnly 该应用程序在大多数浏览器上运行良好 我在 FF chrome 和 safari 上测试过它 并且在所有浏览器上运行良好 然而 当我在 IE8 上测试时 在尝试对其中一个页面进行
  • 如何获取字符串形式的 JsonCPP 值?

    我正在使用解析 json 数据JsonCpp 我真的不需要理解数据 我只需要打印出一些属性及其值 这在某种程度上很难做到 首先我需要知道该值是什么类型 然后获取该值 然后再次将其转换为字符串 有一个样式编写器 但我不想使用它 因为它在末尾附
  • WebView 到 SizedBox Flutter

    我想将自定义 webview 添加到 flutter 中的 sizedBox 中 我尝试这样做 但出现错误 code override Widget build BuildContext context SystemChrome setEn