将小部件放在堆栈中而不重叠

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

我有一个顶部有徽标的登录屏幕。我希望登录表单完全位于屏幕中心(不在徽标下方空间的中心)。到目前为止,我设法使用Stack实现了这一点,大致如下:

Stack(
   children: [
      Positioned(
        child: Logo(),
        left: 0,
        top: 0,
      ),
      Column(
          children: [LoginForm()],
          mainAxisAlignment: MainAxisAlignment.center,
      ),
   ],
)

一般来说,我对它的外观非常满意,但是,当弹出软键盘,可见的屏幕尺寸和中心的概念发生变化时,表格向上移动并与徽标重叠。我知道我可以防止小部件重新调整大小,但是我可以只让表单向上移动,只要它不与徽标重叠吗?

flutter flutter-layout
1个回答
0
投票

您可以使用ListView而不是Column来避免与徽标重叠,当键盘打开时,它会自动向上滚动表单。另请注意,一旦使用ListView,请在其中使用shrinkWrap: true,因为它只会占用所需的空间。希望这个答案有所帮助

© www.soinside.com 2019 - 2024. All rights reserved.