Flutter 当我将TextFormField放入页面视图时,避免调整屏幕大小
在这个简化的代码中,我将两个Flutter 当我将TextFormField放入页面视图时,避免调整屏幕大小,flutter,flutter-layout,Flutter,Flutter Layout,在这个简化的代码中,我将两个TextFormField放入一个flatterPageView页面,它们是从Container扩展的另一个类,而不是任何Scaffold,现在当我点击其中一个TextFormFields时,resizeToAvoidBottom*在我的代码中不起作用 Widget build(BuildContext context) { return Consumer<ThemeManager>(builder: (context, theme, chil
TextFormField
放入一个flatterPageView
页面,它们是从Container
扩展的另一个类,而不是任何Scaffold
,现在当我点击其中一个TextFormFields
时,resizeToAvoidBottom*在我的代码中不起作用
Widget build(BuildContext context) {
return Consumer<ThemeManager>(builder: (context, theme, child) {
return Directionality(
textDirection: TextDirection.rtl,
child: Scaffold(
key: _scaffoldKey,
backgroundColor: theme.accentColor,
resizeToAvoidBottomPadding: false,
resizeToAvoidBottomInset: false,
body: NotificationListener<OverscrollIndicatorNotification>(
onNotification: (overScroll) {
overScroll.disallowGlow();
return false;
},
child: Container(
width: double.infinity,
height: double.infinity,
child: IntrinsicHeight(
child: Stack(
children: <Widget>[
Container(
width: MediaQuery.of(context).size.width,
height: MediaQuery.of(context).size.height - 50,
child: Column(
mainAxisSize: MainAxisSize.max,
children: <Widget>[
BuildLoginHeaderScreen(theme: theme),
Expanded(
child: PageView(
controller: _pageController,
children: <Widget>[
... // contains two TextFormFields
],
),
),
],
),
),
],
),
),
),
),
),
);
});
}
小部件构建(构建上下文){
返回使用者(生成器:(上下文、主题、子项){
返回方向性(
textDirection:textDirection.rtl,
孩子:脚手架(
钥匙:_scaffoldKey,
背景颜色:theme.accentColor,
resizeToAvoidBottomPadding:false,
resizeToAvoidBottomInset:false,
正文:NotificationListener(
onNotification:(overScroll){
overScroll.disallowGlow();
返回false;
},
子:容器(
宽度:double.infinity,
高度:双无限,
孩子:内在的(
子:堆栈(
儿童:[
容器(
宽度:MediaQuery.of(context).size.width,
高度:MediaQuery.of(context).size.height-50,
子:列(
mainAxisSize:mainAxisSize.max,
儿童:[
BuildLoginHeaderScreen(主题:主题),
扩大(
子:页面视图(
控制器:_pageController,
儿童:[
…//包含两个TextFormFields
],
),
),
],
),
),
],
),
),
),
),
),
);
});
}
您可以使用resizetoavidobtompadding
将代码的适当部分用SingleChildScrollView
包装起来。比如说
child: SingleChildScrollView(
child: Column(
mainAxisSize: MainAxisSize.max,
children: <Widget>[
BuildLoginHeaderScreen(theme: theme),
Expanded(
child: PageView(
controller: _pageController,
children: <Widget>[
... // contains two TextFormFields
],
),
),
],
),
),
child:SingleChildScrollView(
子:列(
mainAxisSize:mainAxisSize.max,
儿童:[
BuildLoginHeaderScreen(主题:主题),
扩大(
子:页面视图(
控制器:_pageController,
儿童:[
…//包含两个TextFormFields
],
),
),
],
),
),
这将在键盘缩小视图区域时防止像素溢出。您可以使用
resizeToAvoidBottomPadding
将代码的适当部分用SingleChildScrollView
包装起来。比如说
child: SingleChildScrollView(
child: Column(
mainAxisSize: MainAxisSize.max,
children: <Widget>[
BuildLoginHeaderScreen(theme: theme),
Expanded(
child: PageView(
controller: _pageController,
children: <Widget>[
... // contains two TextFormFields
],
),
),
],
),
),
child:SingleChildScrollView(
子:列(
mainAxisSize:mainAxisSize.max,
儿童:[
BuildLoginHeaderScreen(主题:主题),
扩大(
子:页面视图(
控制器:_pageController,
儿童:[
…//包含两个TextFormFields
],
),
),
],
),
),
这将防止键盘缩小视图区域时出现像素溢出。您能否提供一些代码,帮助我们重现您面临的错误?你能给我们提供一些代码来帮助我们重现你所面临的错误吗?