Flutter:如何使孩子居中,但限制了它在边距的一侧可以长到多大

问题描述 投票:0回答:1

我有一个主页/登录屏幕,该屏幕由一列组成,像这样填充整个屏幕:

Column(
  children: <Widget>[
    Expanded(
      child: Container(
        child: Logo(),
      ),
    ),
    showThis ? This() : That(),
  ],
),

该列的第二个子元素是动态的,并且可以具有不同的高度,并且此屏幕将具有输入,因此键盘也将影响高度。

我想在容器较小时(例如,当键盘处于活动状态时)将Logo()垂直居中放置在容器中,但要限制“顶部边距”能够增长多少,以便隐藏键盘时,This() / That()足够小,Logo()将位于屏幕上的静态位置,例如从顶部开始150(不再垂直居中)。

我尝试过的一种方法是在Expanded()上方和下方使用2个空的Logo()并将顶部包裹在ConstraintedBox()中,但我无法使其正常运行。

flutter flutter-layout
1个回答
0
投票

您是否尝试过使用Center(),并且如果您想在特定位置使用Stack,例如

Stack(
  children: <Widget>[
    showThis(), 
    Positioned(top: 150, child: Logo())
  ],
)
© www.soinside.com 2019 - 2024. All rights reserved.