我得到以下错误:

即. .,抛出了另一个异常: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),
                  ],
                )*/
              ],
            )
        ),
      ),
      ),
    );
  }

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


当前回答

在我的例子中,我在Padding小部件中使用Expanded。填充是在一个列内,但由于扩展是由填充包装它给我的错误。简单地删除扩展解决了我的问题。

其他回答

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

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

在我的例子中,我在Padding小部件中使用Expanded。填充是在一个列内,但由于扩展是由填充包装它给我的错误。简单地删除扩展解决了我的问题。

你可以像这样使用Expanded作为scrolling parent的子元素:

Scaffold(
  body: CustomScrollView(
    physics: const AlwaysScrollableScrollPhysics(),
    slivers: [
      SliverFillRemaining(
        fillOverscroll: true,
        child: Column(
          children: <Widget>[
            Container(color: Colors.red,height: 100),
            Expanded(
              child: Container(color: Colors.purple,),
            ),
          ],
        ),
      )
    ],
  ),
)

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

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