小部件库捕获到异常生成函数返回null

时间:2020-10-19 08:14:00

标签: flutter dart

我对扑扑的发展还很陌生。我试图让静态标题和网格卡项目滚动到静态标题的下面,但是最终出现错误。我试图研究没有成功。我在做什么错了?

窗口小部件库捕获到异常生成函数返回null。 相关的引起错误的小部件是:GridDashboard

RenderFlex在底部溢出了99515像素。相关 导致错误的小部件为:列

enter image description here

我的griddashboard类

class GridDashboard extends StatelessWidget {
  var services = [
    "Home",
    "Settings",
    "Supervisor",
    "Logout",
    "Forms",
    "Messages",
    "bluetooth",
    "Check for updates",
    "Update"
  ];

  var images = [
    "images/calendar.png",
    "images/festival.png",
    "images/food.png",
    "images/image.png",
    "images/logout.png",
    "images/setting.png",
    "images/note.png",
    "images/todo.png",
    "images/map.png",
  ];

  @override
  Widget build(BuildContext context) {
    // return Padding(
    //   padding: const EdgeInsets.all(8.0),
    //   child:
      GridView.builder(
        itemCount: services.length,
        gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
            crossAxisCount: 3,
            childAspectRatio: MediaQuery.of(context).size.width/(MediaQuery.of(context).size.height/1.4)
        ),
        itemBuilder: (BuildContext context, int index){
          return Card(
            child: Column(
              children: <Widget>[
                SizedBox(
                  height: 20,
                ),
                Image.asset(images[index], height: 50.0, width: 50.0,),
                Padding(
                  padding: const EdgeInsets.all(20.0),
                  child: Text(services[index], style: TextStyle(fontSize: 16.0, height: 1.2),textAlign: TextAlign.center ,),
                )
              ],
            ),
          );
        },
      // ),
    );
  }
}

我的家庭班

class Home extends StatefulWidget {
  @override
  HomeState createState() => new HomeState();
}

class HomeState extends State<Home> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Color(0xff392850),
      body: Column(
        children: <Widget>[
          SizedBox(
            height: 110,
          ),
          Padding(
            padding: EdgeInsets.only(left: 16, right: 16),
            child: Row(
              mainAxisAlignment: MainAxisAlignment.spaceBetween,
              children: <Widget>[
                Column(
                  crossAxisAlignment: CrossAxisAlignment.start,
                  children: <Widget>[
                    Text(
                      "Full Names",
                      style: GoogleFonts.openSans(
                          textStyle: TextStyle(
                              color: Colors.white,
                              fontSize: 18,
                              fontWeight: FontWeight.bold)),
                    ),
                    SizedBox(
                      height: 4,
                    ),
                    Text(
                      "Home",
                      style: GoogleFonts.openSans(
                          textStyle: TextStyle(
                              color: Color(0xffa29aac),
                              fontSize: 14,
                              fontWeight: FontWeight.w600)),
                    ),
                  ],
                ),
                IconButton(
                  alignment: Alignment.topRight,
                  icon: Image.asset(
                    "assets/notification.png",
                    width: 24,
                  ),onPressed: ()=>{
                },
                ),
              ],
            ),
          ),
          SizedBox(
            height: 40,
          ),
          GridDashboard()
        ],
      ),
    );
  }
}

2 个答案:

答案 0 :(得分:0)

您可能是偶然地从构建函数中删除了return关键字。

GridView.builder(

需要成为

return GridView.builder(

否则,您的构建函数将不返回任何内容,并且您将得到现在得到的错误。

答案 1 :(得分:0)

它说您的构建函数在null上调用,这意味着您忘记了写return了; 您的问题出在您撰写本文的griddashboard类中

 Widget build(BuildContext context) {
    // return Padding(
    //   padding: const EdgeInsets.all(8.0),
    //   child:
      GridView.builder(
        itemCount: services.length

每当您不在函数中编写return时,它都会显示该错误,不仅是构建函数,还可以通过这样编写return来处理它

 Widget build(BuildContext context) {
    return GridView.builder(
        itemCount: services.length
相关问题