我遇到以下错误:
即..,引发了另一个异常:不正确使用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),
],
)*/
],
)
),
),
),
);
}
这是我的代码,请检查并让我知道该问题。
答案 0 :(得分:43)
在这种情况下,只需删除Expanded
或将其包装在Column
中即可解决此问题。
Expanded
小部件必须是Row
,Column
或Flex
的后代
此问题的解决方法是将expanded
小部件移至flex
小部件内。下面的示例。
Row(
children: [
Expanded(
child: Column(
children: [
Container(
padding: EdgeInsets.only(bottom: 8.0),
child: Text(
"Some Lage Somthing",
style: TextStyle(fontWeight: FontWeight.bold),
),
),
Text("Someplace, Country")
],
),
),
Icon(Icons.star)
],
),
);
快乐飘飘!
答案 1 :(得分:24)
第一条规则:仅在Expanded
,column
或row
中使用flex
。
第二条规则:具有扩展子列的父项column
也必须包含扩展名
答案 2 :(得分:1)
您应仅在列,行或伸缩内使用扩展。
答案 3 :(得分:0)
当我跳过视频时,chewie 控制器显示这些错误,当我修复了 chewie 包错误消失。
请修复 material_controls.dart here
[移除 Stack 小部件中的扩展小部件]
return MouseRegion(
onHover: (_) {
_cancelAndRestartTimer();
},
child: GestureDetector(
onTap: () => _cancelAndRestartTimer(),
child: AbsorbPointer(
absorbing: notifier.hideStuff,
child: Stack(
children: [
if (_latestValue.isBuffering)
const Expanded(
child: Center(
child: CircularProgressIndicator(),
)
)
else
_buildHitArea(),
_buildActionBar(),
Column(
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
if (_subtitleOn)
Transform.translate(
offset: Offset(
0.0, notifier.hideStuff ? barHeight * 0.8 : 0.0),
child:
_buildSubtitles(context, chewieController.subtitle!),
),
_buildBottomBar(context),
],
),
],
),
),
),
);
}
答案 4 :(得分:0)
我的代码中没有扩展,所以我发现使用 Spacer()
如果它在 listview
中也会导致这个错误
答案 5 :(得分:0)
就我而言,我在列中使用了 Positioned
。删除它解决了问题!
答案 6 :(得分:0)
可能有一些事情可以解决这个问题
ListView
下不要使用 Spacer
WidgetPositiond
下使用 Column
Expanded
只能在 column
row
Flex