我得到以下错误:

即. .,抛出了另一个异常:ParentDataWidget的错误使用。 在移动屏幕上显示错误。

 @override
  Widget build(BuildContext context) {

    return MaterialApp(
      title: widget.title,
      theme: ThemeData.light().copyWith(
        platform: _platform ?? Theme.of(context).platform,
      ),
      home: DefaultTabController(
        length: categoryNames.length,
        child: Scaffold(
        appBar: AppBar(
          title: Text(widget.title),
                 ),
        body: SafeArea(
            child: Column(
              children: <Widget>[
                Chewie(
                  controller: _chewieController,
                ),
                TabBar(
                  labelColor:Colors.black,
                  tabs: categoryNames,
                ),
                Expanded(
                  child: TabBarView(
                    children: [
                      ImageList()
                    ],
                  ),
                )
                /*TabBarView(
                  children: [
                    Icon(Icons.directions_car),
                    Icon(Icons.directions_transit),
                    Icon(Icons.directions_bike),
                  ],
                )*/
              ],
            )
        ),
      ),
      ),
    );
  }

这是我的代码,请检查并让我知道问题。


当前回答

第一条规则:只在列、行或flex中使用Expanded。

第二条规则:扩展子列的父列也必须用展开来包装

其他回答

我删除了一个定位小部件,是在一个堆栈内的容器和问题“不正确使用ParentDataWidget”消失了。

在我的例子中,这是因为我在一个sizebox中封闭了一个Expanded,我只是在一行中封闭了Expanded,就是这样。

有很多事情可以解决这个问题

在ListView下不使用Spacer Widget 不要在行或列下使用定位 只能使用扩展,必须是列行伸缩的后代

在我的例子中,我在列中使用了定位。移除它就解决了问题!

在我的代码中没有扩展,所以我发现使用Spacer()也会导致这个错误,如果它是在一个列表视图内