Flutter 颤振中的溢流问题

Flutter 颤振中的溢流问题,flutter,dart,Flutter,Dart,遇到此问题时,我正在使用文本字段。我在文本字段下方放置了一个平面按钮。现在,当我点击文本字段写任何东西时,我的移动键盘出现了。在这里之前一切都很正常。现在,当我在文本字段中输入任何数据并按下移动键盘上的“完成”按钮后,移动键盘将消失。我可以按下文本字段下方的平面按钮。如果我这样做,一切都会顺利进行。 但是 当我在文本字段中输入任何数据时,如果我直接点击我放置的平面按钮,而没有按下移动键盘上的“完成”按钮,那么我会在一秒钟内看到溢出消息。虽然溢出消息只显示了一秒钟,但它仍然令人讨厌。我不知道我该怎

遇到此问题时,我正在使用文本字段。我在文本字段下方放置了一个平面按钮。现在,当我点击文本字段写任何东西时,我的移动键盘出现了。在这里之前一切都很正常。现在,当我在文本字段中输入任何数据并按下移动键盘上的“完成”按钮后,移动键盘将消失。我可以按下文本字段下方的平面按钮。如果我这样做,一切都会顺利进行。 但是 当我在文本字段中输入任何数据时,如果我直接点击我放置的平面按钮,而没有按下移动键盘上的“完成”按钮,那么我会在一秒钟内看到溢出消息。虽然溢出消息只显示了一秒钟,但它仍然令人讨厌。我不知道我该怎么办。请帮帮我。 我附加了一个小的视频链接,显示了这个问题。在视频录制中,我点击了移动键盘上的“完成”按钮,并点击了平面按钮。然后,第二次,我再次在文本字段中键入了一些内容,没有按下“完成”按钮,我就点击了“完成”按钮。您还将看到溢出警告。 请帮助我的朋友。谢谢


请参考这份文件

您可以使用SingleChildScrollView包装容器

示例代码

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

void main() {
  SystemChrome.setEnabledSystemUIOverlays([]);
  runApp(
    MyApp(),
  );
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Forms',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Flutter Forms'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  final TextStyle textstyle =
      TextStyle(color: Colors.white, fontWeight: FontWeight.bold);
  final InputDecoration decoration = InputDecoration(
    border: OutlineInputBorder(),
  );
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: SingleChildScrollView(
          padding: const EdgeInsets.all(8.0),
          child: Center(
            child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              crossAxisAlignment: CrossAxisAlignment.center,
              children: <Widget>[
                FlutterLogo(
                  size: 190,
                ),
                SizedBox(
                  height: 15,
                ),
                TextFormField(
                  decoration: decoration,
                ),
                SizedBox(
                  height: 15,
                ),
                TextFormField(
                  decoration: decoration,
                ),
                SizedBox(
                  height: 15,
                ),
                MaterialButton(
                  color: Colors.red,
                  minWidth: 160,
                  child: Text(
                    'Google',
                    style: textstyle,
                  ),
                ),
                MaterialButton(
                  color: Colors.blue,
                  minWidth: 160,
                  child: Text(
                    'Facebook',
                    style: textstyle,
                  ),
                ),
                MaterialButton(
                  color: Colors.orange,
                  minWidth: 160,
                  child: Text(
                    'E-mail',
                    style: textstyle,
                  ),
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }
}
导入“包装:颤振/材料.省道”;
导入“包:flifter/services.dart”;
void main(){
SystemChrome.SetEnabledSystemEmioVerlays([]);
runApp(
MyApp(),
);
}
类MyApp扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
返回材料PP(
标题:“颤振形式”,
主题:主题数据(
主样本:颜色。蓝色,
),
主页:MyHomePage(标题:“颤振表单”),
);
}
}
类MyHomePage扩展StatefulWidget{
MyHomePage({Key,this.title}):超级(Key:Key);
最后的字符串标题;
@凌驾
_MyHomePageState createState()=>\u MyHomePageState();
}
类_MyHomePageState扩展状态{
最终文本样式文本样式=
TextStyle(颜色:Colors.white,fontwweight:fontwweight.bold);
最终输入装饰=输入装饰(
边框:OutlineInputBorder(),
);
@凌驾
小部件构建(构建上下文){
返回脚手架(
正文:中(
子:SingleChildScrollView(
填充:常数边集全部(8.0),
儿童:中心(
子:列(
mainAxisAlignment:mainAxisAlignment.center,
crossAxisAlignment:crossAxisAlignment.center,
儿童:[
飘动标志(
尺码:190,
),
大小盒子(
身高:15,
),
TextFormField(
装饰:装饰,,
),
大小盒子(
身高:15,
),
TextFormField(
装饰:装饰,,
),
大小盒子(
身高:15,
),
材料按钮(
颜色:颜色,红色,
最小宽度:160,
子:文本(
“谷歌”,
风格:textstyle,
),
),
材料按钮(
颜色:颜色,蓝色,
最小宽度:160,
子:文本(
“Facebook”,
风格:textstyle,
),
),
材料按钮(
颜色:颜色。橙色,
最小宽度:160,
子:文本(
“电子邮件”,
风格:textstyle,
),
),
],
),
),
),
),
);
}
}

在代码中使用
SingleChildScrollView
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

void main() {
  SystemChrome.setEnabledSystemUIOverlays([]);
  runApp(
    MyApp(),
  );
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Forms',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Flutter Forms'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  final TextStyle textstyle =
      TextStyle(color: Colors.white, fontWeight: FontWeight.bold);
  final InputDecoration decoration = InputDecoration(
    border: OutlineInputBorder(),
  );
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: SingleChildScrollView(
          padding: const EdgeInsets.all(8.0),
          child: Center(
            child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              crossAxisAlignment: CrossAxisAlignment.center,
              children: <Widget>[
                FlutterLogo(
                  size: 190,
                ),
                SizedBox(
                  height: 15,
                ),
                TextFormField(
                  decoration: decoration,
                ),
                SizedBox(
                  height: 15,
                ),
                TextFormField(
                  decoration: decoration,
                ),
                SizedBox(
                  height: 15,
                ),
                MaterialButton(
                  color: Colors.red,
                  minWidth: 160,
                  child: Text(
                    'Google',
                    style: textstyle,
                  ),
                ),
                MaterialButton(
                  color: Colors.blue,
                  minWidth: 160,
                  child: Text(
                    'Facebook',
                    style: textstyle,
                  ),
                ),
                MaterialButton(
                  color: Colors.orange,
                  minWidth: 160,
                  child: Text(
                    'E-mail',
                    style: textstyle,
                  ),
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }
}