Dart 如何在ListView中定位元素?
早上好。我做了一个,它就像一个高分辨率的魅力。问题是,我想支持更低的分辨率,如Nexus 4(768x1280) 因此,当我在模拟器(Nexus 4大小)上运行此操作并触摸输入字段时,键盘要么:阻止输入,要么移动底部的两个按钮并将它们重叠在其他内容上 因此,为了解决这个问题,我将整个布局包装在ListView()上,但是现在底部按钮(包装在一行()上)不会停留在底部 这是我没有ListView的代码,在高分辨率下工作,但在低分辨率下工作:Dart 如何在ListView中定位元素?,dart,flutter,flutter-layout,Dart,Flutter,Flutter Layout,早上好。我做了一个,它就像一个高分辨率的魅力。问题是,我想支持更低的分辨率,如Nexus 4(768x1280) 因此,当我在模拟器(Nexus 4大小)上运行此操作并触摸输入字段时,键盘要么:阻止输入,要么移动底部的两个按钮并将它们重叠在其他内容上 因此,为了解决这个问题,我将整个布局包装在ListView()上,但是现在底部按钮(包装在一行()上)不会停留在底部 这是我没有ListView的代码,在高分辨率下工作,但在低分辨率下工作: return Form( Stack( Ce
return Form(
Stack(
Center(
Column(
...
),
),
Align(
alignment: Alignment.bottomCenter,
child: Row(
...
),
),
),
);
是resizeToAvoidBottomPadding的外观:false
并且是值设置为true时的外观
谢谢大家。在你的
脚手架上
你能试试这个吗
Scaffold(
resizeToAvoidBottomInset: false,
...
);
您是否尝试使用SingleChildScrollView 它是一个小部件,用于使页面能够调整高度和滚动,对于不是listview的listview,您应该在获得未知数据量时添加listview 我们通常不使用它来调整视图
好的,我在这里编辑了代码,我可以在键盘弹出后正常滚动,视图良好,我可以正常点击按钮尝试
Widget formWidget(){
return new Scaffold(
// appBar: AppBar(
// // Here we take the value from the MyHomePage object that was created by
// // the App.build method, and use it to set our appbar title.
// title: Text(widget.title),
// ),
body:Column(
children: <Widget> [
Expanded(
child:SingleChildScrollView(
child: Form(
child:
// Stack(
// children: <Widget>[
// Center(
// child: SingleChildScrollView(
// child:
Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisSize: MainAxisSize.max,
children: [
Padding(
padding: (MediaQuery.of(context).size.height) > 600
? const EdgeInsets.only(top: 0.0)
: const EdgeInsets.only(top: 30.0),
child: Image(
image: AssetImage('assets/favIcon.png'),
width: 88.0,
height: 88.0,
),
),
Padding(
padding: const EdgeInsets.fromLTRB(0, 28.0, 0, 12.0),
child: Text(
'Delegados',
style: TextStyle(
fontFamily: 'Archia',
fontSize: 32.0,
),
),
),
Text(
'Introduce tus datos de acceso aquí.',
style: TextStyle(
color: Color(0xff83868F),
fontFamily: 'Brutal',
fontSize: 14.0,
),
),
Padding(
padding:
const EdgeInsets.fromLTRB(16.0, 26.0, 16.0, 12.0),
child: TextFormField(
decoration: InputDecoration(
labelText: 'Correo',
filled: true,
fillColor: Color(0xffF0F1F5),
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(8.0),
borderSide: BorderSide(
width: 0,
style: BorderStyle.none,
),
),
),
style: TextStyle(
fontFamily: 'Brutal',
color: Color(0xff1A1B1F),
),
controller: TextEditingController() ,
textInputAction: TextInputAction.next,
),
),
Padding(
padding: const EdgeInsets.fromLTRB(16.0, 0, 16.0, 12.0),
child: TextFormField(
keyboardType: TextInputType.emailAddress,
decoration: InputDecoration(
labelText: 'Contraseña',
filled: true,
fillColor: Color(0xffF0F1F5),
suffixIcon: Icon(Icons.remove_red_eye),
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(8.0),
borderSide: BorderSide(
width: 0,
style: BorderStyle.none,
),
),
),
style: TextStyle(
fontFamily: 'Brutal',
color: Color(0xff1A1B1F),
),
controller: TextEditingController() ,
//focusNode:FocusNode(),
obscureText: true,
),
),
Align(
alignment: Alignment.centerRight,
child: Padding(
padding: const EdgeInsets.fromLTRB(0, 0, 0, 26.0),
child: CupertinoButton(
onPressed: () {},
child: Text(
'Olvidé mi Contraseña',
style: TextStyle(
color: Color(0xff565A66),
fontFamily: 'Brutal',
fontSize: 14.0,
),
),
),
),
),
Padding(
padding: const EdgeInsets.fromLTRB(16.0, 0, 16.0, 0),
child: ButtonTheme(
minWidth: double.infinity,
child: InkWell(
// onTap: state is! LoginLoading
// ? _onLoginButtonPressed
// : null,
child: Container(
height: 48.0,
width: 500.0,
decoration: BoxDecoration(
color: Color(0xff00CC36),
borderRadius: BorderRadius.circular(8.0),
),
child: Align(
alignment: Alignment.center,
child: Container(
child:
// state is LoginLoading
// ? CircularProgressIndicator():
Text(
'INGRESAR AHORA ›',
style: TextStyle(
color: Colors.white,
fontFamily: 'Brutal',
fontSize: 14.0,
),
),
)),
),
),
),
),
],
),
// ),
)
,
// aqui va <<<<<<<<<<<<
// ],
// ),
)
),
Align(
alignment: Alignment.bottomCenter,
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
CupertinoButton(
onPressed: () {},
child: Text(
'¿No tienes cuenta?',
style: TextStyle(
color: Color(0xff83868F),
fontFamily: 'Brutal',
fontSize: 14.0,
),
),
),
InkWell(
onTap: null,
child: Container(
height: 32.0,
width: 112.0,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(6.0),
border: Border.all(
color: Color(0xffD7D9E0),
width: 1.0,
),
),
child: Align(
alignment: Alignment.center,
child: Text(
'CONTACTANOS',
style: TextStyle(
color: Color(0xff565A66),
fontFamily: 'Brutal',
fontSize: 11.0),
),
),
),
),
],
),
),
]
)
,
// )
);
}
Widget formWidget(){
归还新脚手架(
//appBar:appBar(
////这里我们从MyHomePage对象中获取由创建的值
////App.build方法,并使用它设置appbar标题。
//标题:文本(widget.title),
// ),
正文:第(
儿童:[
扩大(
子:SingleChildScrollView(
孩子:表格(
儿童:
//堆叠(
//儿童:[
//居中(
//子:SingleChildScrollView(
//儿童:
纵队(
mainAxisAlignment:mainAxisAlignment.center,
crossAxisAlignment:crossAxisAlignment.center,
mainAxisSize:mainAxisSize.max,
儿童:[
填充物(
填充:(MediaQuery.of(context.size.height)>600
?仅限常数边设置(顶部:0.0)
:仅限常数边集(顶部:30.0),
孩子:图像(
图片:AssetImage('assets/favIcon.png'),
宽度:88.0,
身高:88.0,
),
),
填充物(
填充:从LTRB(0,28.0,0,12.0)开始的常量边集,
子:文本(
“Delegados”,
样式:TextStyle(
fontFamily:“阿奇亚”,
字体大小:32.0,
),
),
),
正文(
“介绍datos de acceso Aqí”,
样式:TextStyle(
颜色:颜色(0xff83868F),
fontFamily:“残忍”,
字体大小:14.0,
),
),
填充物(
衬垫:
LTRB的常数边集(16.0,26.0,16.0,12.0),
子项:TextFormField(
装饰:输入装饰(
标签文字:“科雷奥”,
是的,
填充颜色:颜色(0xffF0F1F5),
边框:大纲输入边框(
边界半径:边界半径。圆形(8.0),
边界边(
宽度:0,
样式:BorderStyle.none,
),
),
),
样式:TextStyle(
fontFamily:“残忍”,
颜色:颜色(0xff1A1B1F),
),
控制器:TextEditingController(),
textInputAction:textInputAction.next,
),
),
填充物(
填充:LTRB(16.0,0,16.0,12.0)中的常量边集,
子项:TextFormField(
键盘类型:TextInputType.emailAddress,
装饰:输入装饰(
labelText:“Contraseña”,
是的,
填充颜色:颜色(0xffF0F1F5),
足够图标:图标(图标。去掉红色的眼睛),
边框:大纲输入边框(
边界半径:边界半径。圆形(8.0),
边界边(
宽度:0,
样式:BorderStyle.none,
),
),
),
样式:TextStyle(
fontFamily:“残忍”,
颜色:颜色(0xff1A1B1F),
),
控制器:TextEditingController(),
//focusNode:focusNode(),
蒙昧文字:对,
),
),
对齐(
对齐:alignment.centerRight,
孩子:填充(
padding:const EdgeInsets.fromLTRB(0,0,0,26.0),
孩子:丘比特纽顿(