要返回导致建筑小部件填充可用空间的空白空间,请返回“Container()”

时间:2021-02-10 15:27:32

标签: flutter dart

正如我在上面的标题中所写的那样,我收到了这个错误。我是 flutter 的新学习者,我正在寻找一些解决方案来解决它,例如下面的链接。

但我仍然无法解决问题,谁能帮我解决这个问题? 我知道这可能是一个重复的问题,我已经尽力理解它但仍然无法解决,有人可以帮忙吗?谢谢。和 下面是 main.dart 代码:

import 'package:flutter/material.dart';
import 'package:sharing_app/MyFlutterApp_icons.dart';
import 'package:sharing_app/Sharer.dart';
import 'package:sharing_app/Customer.dart';

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

class MainPage extends StatefulWidget{
  Home createState()=> Home();
}

class Home extends State<MainPage> {
  @override
  Widget build(BuildContext context) {
    Scaffold(
      appBar: AppBar(
        backgroundColor: Colors.amber,
        centerTitle: true,
        title: Text('Welcome',
          style: TextStyle(
            fontSize: 16.0,
            color: Colors.black87,
            letterSpacing: 1.0,
          ),
        ),
      ),
      body: Column(
        children: [
          Row(
            mainAxisAlignment: MainAxisAlignment.center,
            crossAxisAlignment: CrossAxisAlignment.center,
            children: <Widget>[
              Expanded(
                flex: 1,
                child: Container(
                  padding: EdgeInsets.all(20.0),
                  child: RaisedButton.icon(
                    onPressed: () {
                      Navigator.of(context)
                          .push(MaterialPageRoute(
                          builder: (context) {
                            return Sharer();
                          }
                      )
                      );
                    },
                    icon: Icon(
                      Icons.account_circle,
                    ),
                    label: Text(
                      'Login as Sharer',
                      style: TextStyle(
                        fontFamily: 'MyFlutterApp',
                        color: Colors.black87,
                        letterSpacing: 1.0,
                      ),
                    ),
                  ),
                ),
              ),
            ],
          ),
          Row(
            mainAxisAlignment: MainAxisAlignment.center,
            crossAxisAlignment: CrossAxisAlignment.center,
            children: <Widget>[
              Expanded(
                flex: 1,
                child: Container(
                  padding: EdgeInsets.all(20.0),
                  child: RaisedButton.icon(
                    onPressed: () {
                      Navigator.of(context)
                          .push(MaterialPageRoute(
                          builder: (context) {
                            return Customer();
                          }
                      )
                      );
                    },
                    icon: Icon(
                      Icons.account_circle,
                    ),
                    label: Text(
                      'Login as Customer',
                      style: TextStyle(
                        fontFamily: 'MyFlutterApp',
                        color: Colors.black87,
                        letterSpacing: 1.0,
                      ),
                    ),
                  ),
                ),
              ),
            ],
          ),
        ],
      ),
    );
  }
}

错误:它在 android studio 控制台上显示“构建函数返回空值。”。然后,“要返回导致建筑小部件填满可用空间的空白空间,请返回“Container()”。要返回占用尽可能少空间的空白空间,请返回“Container(width: 0.0, height: 0.0) “。”

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

好吧,您只是忘记了 Scaffold 之前的 return 语句:

class Home extends State<MainPage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(

构建方法期望返回一个小部件(在你的情况下是脚手架),以便它可以绘制/构建这个小部件。