我有一个登录屏幕,顶部带有徽标。我希望登录表单准确位于屏幕中心(而不是徽标下方空间的中心)。到目前为止,我设法使用Stack
实现了这一目标,大致是这样的:
Stack(
children: [
Positioned(
child: Logo(),
left: 0,
top: 0,
),
Column(
children: [LoginForm()],
mainAxisAlignment: MainAxisAlignment.center,
),
],
)
总的来说,我对它的外观很满意,但是,当弹出软键盘,可见的屏幕尺寸和中心的概念发生变化时,表单会向上移动并与徽标重叠。我知道我可以完全禁止小部件的大小,但是我可以只允许表单向上移动,只要它不与徽标重叠即可吗?
答案 0 :(得分:0)
您可以使用ListView
而不是Column
来避免与徽标重叠,并且当键盘打开时,它将自动向上滚动表单。
另请注意,一旦使用ListView
,请在其中使用shrinkWrap: true
,因为它只会占用所需的空间。
希望这个答案有帮助。