Widget top() { return Stack( children: [ Positioned( left: 0, top: 0, right: 0, child: Expanded( child: Scaffold( appBar: MyAppBar( title: "", context: context, ), ), ),) ], ); }为什么这段代码不起作用
时间: 2023-11-27 16:50:18 浏览: 82
这段代码可能存在一些问题,首先,`Widget top()` 是一个方法,并不是一个 Widget,所以需要在返回值前面加上 Widget 类型,比如 `Widget buildTop() {`。
另外,`Stack` 需要至少两个子 Widget 才能正常工作,但是这里只有一个 `Positioned`,建议再加入一个子 Widget。
最后,`Expanded` 必须是包裹在一个有限的父 Widget 内才能生效,所以建议在 `Scaffold` 外层再包裹一个有限的父 Widget,比如 `Container`。
下面是修正后的代码:
```
Widget buildTop() {
return Container(
width: double.infinity,
height: double.infinity,
child: Stack(
children: [
Positioned(
left: 0,
top: 0,
right: 0,
child: Container(
child: Expanded(
child: Scaffold(
appBar: MyAppBar(
title: "",
context: context,
),
),
),
),
),
// 加入另一个子 Widget
Positioned(
top: 100,
left: 50,
child: Text("Hello World"),
),
],
),
);
}
```
希望能够帮到你!
阅读全文