如何解决如何使用ScrollView而不弄乱实际布局的顺序?
我正在创建一个登录屏幕,据我了解,我需要使用 SingleChildScrollView ,以防止在TextFields聚焦时出现“ 黄色条纹”问题
每当我添加 SingleChildScrollView 时,由于MainAxisAlignment不再起作用,也许会丢失任何类型的小部件对齐:
SignleChildScrollView 的效果如何:Screenshot with SingleChildScrollView
其外观应为:Screenshot without SingleChildScrollView
body: SafeArea(
child: SingleChildScrollView(
child: Column(
mainAxisAlignment: MainAxisAlignment.end,crossAxisAlignment: CrossAxisAlignment.center,children: [
Container(
padding: EdgeInsets.only(bottom: 50),child: TypeScript(textTypeScript: tsLogin),),Container(
width: MediaQuery.of(context).size.width / 1.2,child: Column(
children: [
emailField,SizedBox(height: 20),passwordField,Container(
height: 80,padding: EdgeInsets.only(top: 10),alignment: Alignment.topRight,//child: passwordRecovery,Container(
child: loginButton,SizedBox(
height: 52,width: MediaQuery.of(context).size.height; / 2,child: orStripe,Container(
padding: EdgeInsets.only(bottom: 10),child: signButton,],);
}
}
解决方法
尝试用以下内容替换SingleChildscrollview:
CustomScrollView(
slivers[
SliverFillRemaining(
hasScrollBody: false,child: YourChildWidget(),),)
,
我会向您建议两件事:
1在Line4
中,尝试将mainAxisAlignment.end
内的Column
更改为MainAxisAlignment.start
2我在下面的代码中指出了一个错误。
检查这些并告诉我是否可以解决您的问题?
body: SafeArea(
child: SingleChildScrollView(
child: Column(
mainAxisAlignment: MainAxisAlignment.start,crossAxisAlignment: CrossAxisAlignment.center,children: [
Container(
padding: EdgeInsets.only(bottom: 50),child: TypeScript(textTypeScript: tsLogin),Container(
width: MediaQuery.of(context).size.width / 1.2,child: Column(
children: [
emailField,SizedBox(height: 20),passwordField,Container(
height: 80,padding: EdgeInsets.only(top: 10),alignment: Alignment.topRight,//child: passwordRecovery,Container(
child: loginButton,SizedBox(
height: 52,width: MediaQuery.of(context).size.height / 2,//ERROR
child: orStripe,Container(
padding: EdgeInsets.only(bottom: 10),child: signButton,],
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。