flutter - 内部没有高度的 WebView 滚动不起作用

标签 flutter webview

在 Flutter 上...我尝试在所有支持滚动的可用容器中添加 Webview,但它在 Android 上不起作用。

ListView(
          shrinkWrap: true,
          children: <Widget>[
            Text("hiiiiiiiiiiiii "),
            Text("hiiiiiiiiiiiii "),
            Text("hiiiiiiiiiiiii "),
           Expanded(
                child: WebView(
                    key: Key("webview1"),
                    debuggingEnabled:  true,
                    javascriptMode: JavascriptMode.unrestricted,
                    initialUrl: "https://flutter.dev/")),
            Text("hiiiiiiiiiiiii "),
            Text("hiiiiiiiiiiiii "),
            Text("hiiiiiiiiiiiii "),
          ],
)

最佳答案

如果你想将你的可滚动 WebView 放在其他小部件之间,并且 WebView 将是可滚动的,而其他小部件不是,那么只需将你的 ListView 更改为 Column 这样:

Column(
  children: <Widget>[
    Text("hiiiiiiiiiiiii "),
    Text("hiiiiiiiiiiiii "),
    Container(
      height: 300,
      child: WebView(
          key: Key("webview1"),
          debuggingEnabled: true,
          javascriptMode: JavascriptMode.unrestricted,
          initialUrl: "https://flutter.dev/")
    ),
    Text("hiiiiiiiiiiiii "),
    Text("hiiiiiiiiiiiii "),
)

但是如果你想在 WebView 之上有一些可滚动的小部件,那么试试 CustomScrollViewSliverList .

你能说出你试图制定的确切逻辑是什么吗?

补充:

如果你想有可滚动区域和一些内部的 WebView,你必须知道 WebView 的高度:

ListView(
  physics: ClampingScrollPhysics(),
  children: <Widget>[
    Text("hiiiiiiiiiiiii "),
    Text("hiiiiiiiiiiiii "),
    ConstrainedBox(
      constraints: BoxConstraints(maxHeight: 10000),
        child: WebView(
          gestureRecognizers: Set()
            ..add(
              Factory<VerticalDragGestureRecognizer>(
                  () => VerticalDragGestureRecognizer(),
              ), // or null
            ),
            key: Key("webview1"),
            debuggingEnabled: true,
            javascriptMode: JavascriptMode.unrestricted,
            initialUrl: "https://flutter.dev/")),
    Text("hiiiiiiiiiiiii "),
    Text("hiiiiiiiiiiiii "),
  ],
);

可以动态获取的WebView的高度,灵感在这里: https://gist.github.com/PonnamKarthik/877a90917a576ecff613d5169680d02c

关于flutter - 内部没有高度的 WebView 滚动不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58694353/

相关文章:

java - 名称 'File' 在库 'dart:html' 和 'dart:io' 中定义

flutter - 创建新的 flutter 项目时出现此错误 Error : Could not resolve URL "https://pub.dartlang.org"

flutter - Flutter 中的 BottomNavigationBar 样式

google-chrome - 抑制Chrome打包应用程序中的 "Failed to load resource: net::ERR_FILE_NOT_FOUND"

java - Android WebView 自定义 header

android - 为什么 Xamarin.Forms WebView 会增加 Android 应用程序存储数据大小?

flutter - 我是否应该为应用程序的每个页面/屏幕创建 3 个不同的小部件,以便能够在不同尺寸的屏幕上运行?

Flutter:如何使 Web View 大小适合屏幕?

android - 获取 WebView 的真实 X 和 Y 坐标

java - 使用jsoup从webview解析登录的网站