颤振-与脚手架堆叠

时间:2020-07-30 01:30:47

标签: flutter flutter-layout flutter-design

我目前在项目中将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)

2 个答案:

答案 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,
        ],