导航到新页面时黑屏抖动

Blackscreen when navigate to new page flutter

目前我创建了一个应用程序,在列表中显示我的传感器数据,但我的问题是,如果我想导航到列表页面,我总是会出现黑屏。 我试过这样导航:

Container(
                  height: 150.0,
                  margin: EdgeInsets.fromLTRB(75, 25, 75, 100),
                  child: Material(
                    borderRadius: BorderRadius.circular(20.0),
                    shadowColor: Colors.greenAccent,
                    color: Colors.green,
                    elevation: 7.0,
                    child: GestureDetector(
                      onTap: () {
                        Navigator.push(
                            context,
                            MaterialPageRoute(
                                builder: (context) =>  DataPage(key: null,)));

                      },

我得到了错误

The argument type 'Null' can't be assigned to the parameter type 'Key'.

这是我的列表页面代码的一部分

class DataPage extends StatelessWidget {
  const DataPage({
    required Key key,
  }) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: Text('Hive Test'),
        ),
        body: Column(
          children: <Widget>[
            Expanded(child: _buildListView()),
          ],
        ));
  }

以我目前的知识,我不知道如何解决我的问题。如有任何语法错误,我们深表歉意,如有任何帮助,我将不胜感激!

您在数据页中的构造函数如下所示:

   const DataPage({Key? key}) : super(key: key);

发生这种情况是因为您在导航到数据页屏幕时在键中传递了 'null'。 Key 是可选参数,因此您可以通过这种方式使其可为空。

编辑您的第一个片段:

Container(
                  height: 150.0,
                  margin: EdgeInsets.fromLTRB(75, 25, 75, 100),
                  child: Material(
                    borderRadius: BorderRadius.circular(20.0),
                    shadowColor: Colors.greenAccent,
                    color: Colors.green,
                    elevation: 7.0,
                    child: GestureDetector(
                      onTap: () {
                        Navigator.push(
                            context,
                            MaterialPageRoute(
                                builder: (context) =>  DataPage()));

                      },

对您的第二个片段的编辑:

class DataPage extends StatelessWidget {
  const DataPage({
    Key? key,
  }) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: Text('Hive Test'),
        ),
        body: Column(
          children: <Widget>[
            Expanded(child: _buildListView()),
          ],
        ));
  }