在底部导航中对齐窗口小部件主体

时间:2019-07-24 00:34:48

标签: flutter dart

我有一个具有以下架构的脚手架,并且底部导航栏覆盖了车身。如果我评论导航,一切都会很好。

Scaffold(
      backgroundColor: Theme.of(context).backgroundColor,
      appBar: AppAppBar(title: this.title),
      body: Row(
        children: [
          Expanded(
            child: Container(
              child: Padding(
                padding: EdgeInsets.symmetric(
                    horizontal: this.pageProvider.horizontalPadding,
                    vertical: 25),
                child: this.body,
              ),
            ),
          )
        ],
      ),
      bottomNavigationBar: AppNavigation(),
    );

这是AppNavigation小部件的实现:

Stack(
      children: <Widget>[
        Align(
          alignment: Alignment.bottomCenter,
          child: Container(
            height: 64,
            child: BottomNavigation(),
          ),
        ),
        Align(
          alignment: Alignment.bottomCenter,
          child: Container(
            height: 80,
            child: WorkoutButton(),
          ),
        ),
      ],
    );

这是主体,无论我使用什么小部件: Bug

如果不够清晰,则身体的高度几乎不会达到

1 个答案:

答案 0 :(得分:1)

为什么不使用BottomNavigationBar小部件而不是Stack

无论如何,发生这种情况是因为您的Stack不受限制,因此会使用所有可用空间。给它一些约束(例如,通过将其包装在具有高度限制的ConstrainedBox中)。

ConstrainedBox(
     constraints: BoxConstraints.tightFor(height: 150.0),
     child: Stack( ...
     )
)