我目前在项目中将Scaffold与BottomNavigationBar一起使用,并且需要在所有这些之上显示一个单独的小部件。
试图在构建返回值上创建一个Stack,并将此小部件和脚手架作为子代放置,但是该小部件根本不显示(根本不显示)!也没有任何错误消息。
可能是什么问题?还是有其他方法? (为此无法调用AlertDialog)。
在支架的主体上定义堆栈也不起作用,因为它需要BottomNavigationBar的列表。
Widget build(BuildContext context) {
var Test = Center(
child: SizedBox(width: 100, height: 100,
child: Container(
color: Colors.blue,
child: Text("Test"),),),);
return Stack(
alignment: Alignment.center,
children: [
Test,
Scaffold(
appBar: ..... (rest of the code)
答案 0 :(得分:0)
这是因为您的脚手架绘制在您的“测试”小部件上。 Stack需要多个子项,并从下到上对其进行排序。因此,第一个项目是最底端的,最后一个是最高端的。请尝试以下操作:
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Stack(
alignment: Alignment.center,
children: <Widget>[
Scaffold(
appBar: AppBar(title: Text('Hi')),
),
TestWidget(),
],
),
);
}
}
class TestWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
width: 100,
height: 100,
color: Colors.blue,
child: Center(
child: Text("Test"),
),
);
}
}
答案 1 :(得分:0)
如@HBS所述,此问题是由堆栈顺序引起的,但是可以通过更改Widget顺序来解决此问题:
Widget build(BuildContext context) {
var Test = Center(
child: SizedBox(width: 100, height: 100,
child: Container(
color: Colors.blue,
child: Text("Test"),),),);
return Stack(
alignment: Alignment.center,
children: [
Scaffold(
appBar: ..... (rest of the code),
Test,
],