Flutter 中的底部被无限像素溢出

Posted

技术标签:

【中文标题】Flutter 中的底部被无限像素溢出【英文标题】:Bottom Overflowed By Infinity Pixels in Flutter 【发布时间】:2021-11-20 06:29:50 【问题描述】:

我使用了从网站加载的 Webview 脚本数据。仅显示来自帖子标题的数据,但未显示 Webview 数据,而是在屏幕上显示由无限像素溢出的底部。我找不到我的问题。请给我建议。

  body: Container(
        height: 100,
        child: Padding(
        padding: EdgeInsets.all(8.0),
        child: Column(
          children:[
            Text(widget.title,
            textAlign:TextAlign.start,
             style: TextStyle(fontSize:19,  )
            ),
            WebView(
              navigationDelegate: (NavigationRequest request) 
                print('allowing navigation to $request');
                return NavigationDecision.navigate;
              ,
              javascriptMode: JavascriptMode.unrestricted,
              initialUrl:'data:text/html;base64,$contentBase64',
              onWebResourceError: (error) 
                //EasyLoading.dismiss();
              ,
              onPageFinished: (finish) 
                //EasyLoading.dismiss();
              ,
            ),
          ],
    
        )
        )
      ),

【问题讨论】:

删除容器和列,你不能像这样使用webview,使用flutter_inappwebviewpub.dev/packages/flutter_inappwebview包 已经移除了容器,但我已经使用了 SingleChildScrollView。底部溢出无限像素问题已修复。但是 webview 数据不显示?帖子标题和网页视图都会显示。 试试我的回答here希望对你有帮助 @RavindraS.Patil 我使用并修复了它,但未显示 webview 数据。 @Abhijith。你有这样的脚本吗? 【参考方案1】:

用 expand() 包裹 webview。

完整代码:

import 'package:flutter/material.dart';
import 'package:webview_flutter/webview_flutter.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget 
  @override
  Widget build(BuildContext context) 
    return MaterialApp(
      home: MyHomePage(),
    );
  


class MyHomePage extends StatefulWidget 
  MyHomePage(Key? key) : super(key: key);

  @override
  _MyHomePageState createState() => _MyHomePageState();


class _MyHomePageState extends State<MyHomePage> 
  Widget build(BuildContext context) 
    return Scaffold(
      appBar: AppBar(
        title: Text('WebView Demo'),
      ),
      body: Padding(
          padding: EdgeInsets.all(8.0),
          child: Column(
            children: [
              Text("widget.title",
                  textAlign: TextAlign.start,
                  style: TextStyle(
                    fontSize: 19,
                  )),
              Expanded(
                  child: WebView(
                navigationDelegate: (NavigationRequest request) 
                  print('allowing navigation to $request');
                  return NavigationDecision.navigate;
                ,
                javascriptMode: JavascriptMode.unrestricted,
                initialUrl: 'https://www.google.com/',
                onWebResourceError: (error) 
                  //EasyLoading.dismiss();
                ,
                onPageFinished: (finish) 
                  //EasyLoading.dismiss();
                ,
              )),
            ],
          )),
    );
  

【讨论】:

以上是关于Flutter 中的底部被无限像素溢出的主要内容,如果未能解决你的问题,请参考以下文章

颤振 - 底部溢出像素数

Flutter Bottom 被像素溢出,尝试了 Column()、Row()、Container() 等等

Flutter for Web:Android Chrome 底部的文本被截断

一个 RenderFlex 在底部问题上溢出了 40 个像素

Flutter Web:底部溢出问题

一个 RenderFlex 在底部溢出了 729 个像素。在 SingleChildScrollView