键盘隐藏了我的 textformfield dart flutter 是否有任何解决方案,它尝试了很多都没有用

问题描述

这是我的带表格的wiget

 Widget verticalList = new ListView(
        shrinkWrap: true,children: [
          Container(
            color:Colors.white,width: MediaQuery.of(context).size.width,child:  Form(
              key: _formKey,child:Column(
                //  shrinkWrap: true,mainAxisSize:MainAxisSize.min,children: [
                      textformField(),textformField(),........
                      .........

                ],),],);

这里是脚手架部分完整代码

return Scaffold(
      resizetoAvoidBottomInset: true,body: Container(
          decoration: Boxdecoration(
            gradient: LinearGradient(
              begin: Alignment.topCenter,end: Alignment.center,stops: [0.0,1,1.2],colors: <Color>[
                Color(0xff19879a),Color(0xff000e11),Color(0xff000e02),child: Column(
              children:[
                Container(
                  height: 160,child: Row(
                    mainAxisAlignment: MainAxisAlignment.spaceEvenly,crossAxisAlignment: CrossAxisAlignment.center,children: [
                      Expanded(flex:3,child: Container(
                          child: Column(
                            mainAxisAlignment: MainAxisAlignment.center,crossAxisAlignment: CrossAxisAlignment.end,children: [
                              FittedBox(child: Text("Firm Details",style: GoogleFonts.lato(color: Color(0xfffbfbfb),fontSize: 1.8*SizeConfig.textMultiplier))),SizedBox(height: 0.5*SizeConfig.heightMultiplier,Padding(
                                padding: const EdgeInsets.only(left:30.0),child: Text(
                                 "Please select the category that best describes your business model.",textAlign: TextAlign.right,style: GoogleFonts.lato(
                                      color: Color(0xffb3fbfbfb),fontSize: 1.5*SizeConfig.textMultiplier),Expanded(
                        flex: 2,child: Container(
                          width: 10.0*SizeConfig.widthMultiplier,height: 10.0*SizeConfig.heightMultiplier,child: Image.asset(
                            "assets/images/firmDetail.png",width: 10.0*SizeConfig.widthMultiplier,Expanded(
                  child: Container(
                  decoration: Boxdecoration(
                      color: Colors.white,border: Border.all(
                        color: Colors.white,borderRadius: BorderRadius.only(topLeft:Radius.circular(30),topRight: Radius.circular(30))
                  ),child: Column(
                    mainAxisSize: MainAxisSize.min,children: [
                      Expanded(flex:1,child: horizontallist1),Expanded(flex:5,child:verticalList,)
  ]
    )
    ),);

请帮助我尝试了很多都没有用, 我的代码有问题吗

请帮助我尝试了很多都没有用, 我的代码有问题吗

键盘隐藏了我的 textformfield dart Flutter 有什么解决方案吗,它尝试了很多都没有用

解决方法

用这个填充包裹表单:

Padding(
  padding: EdgeInsets.only(
    bottom: MediaQuery.of(context).viewInsets.bottom
  ),)
,

将所有内容包装在 SingleChildScrollView 小部件中,您可以在显示键盘时滚动。

Widget build(BuildContext context) {
return Scaffold(
  appBar: AppBar(
    title: Text('Your Title'),),body: SingleChildScrollView(
    child:  _buildPage(),);}

如果您希望在用户滚动时隐藏键盘,请使用 NotificationListener 将其全部包装起来。

body: NotificationListener<ScrollUpdateNotification>(
  onNotification: (notification) {
      // dismiss keyboard on scroll if user initiated the scroll (ie dragDetails != null)
      if (notification.dragDetails != null) {
        FocusScope.of(context).unfocus();
      }
      return true;
  },child: SingleChildScrollView(
    child: _buildPage(),);