dart – 在Flutter中导航后无法在新页面中关注TextField

dart – 在Flutter中导航后无法在新页面中关注TextField,第1张

概述出于某种原因,我无法在导航后的下一页上关注TextField.选择TextField时,键盘会自动关闭.如果我在TextField上设置autofocus:true,那么键盘将无限d出并立即一次又一次地解除. 当我的应用程序大小合理时,我遇到了这个,但我能够在一个最小的示例应用程序中重新创建它. 我正在使用Dart 2.0.0-dev.55.0和Flutter beta v0.3.2. 主页代码: 出于某种原因,我无法在导航后的下一页上关注TextFIEld.选择TextFIEld时,键盘会自动关闭.如果我在TextFIEld上设置autofocus:true,那么键盘将无限d出并立即一次又一次地解除.

当我的应用程序大小合理时,我遇到了这个,但我能够在一个最小的示例应用程序中重新创建它.

我正在使用Dart 2.0.0-dev.55.0和Flutter beta v0.3.2.

主页代码:

import 'package:Flutter/material.dart';import 'settings.dart';voID main() => runApp(new MyApp());class MyApp extends StatelessWidget {  @overrIDe  Widget build(BuildContext context) {    return new MaterialApp(      Title: 'Flutter Demo',theme: new themeData(        primarySwatch: colors.blue,),home: new MyHomePage(Title: 'Flutter Demo Home Page'),);  }}class MyHomePage extends StatefulWidget {  MyHomePage({Key key,this.Title}) : super(key: key);  final String Title;  @overrIDe  _MyHomePageState createState() => new _MyHomePageState();}class _MyHomePageState extends State<MyHomePage> {  @overrIDe  Widget build(BuildContext context) {    return Scaffold(      appbar: Appbar(        Title: Text(Widget.Title),body: Center(        child: Column(          mainAxisAlignment: MainAxisAlignment.center,children: <Widget>[            Text('Helpful text.',// ===== Where navigation happens =====            Raisedbutton(              onpressed: () {                Navigator.push(context,PageRouteBuilder(                  pageBuilder: (_,__,___) => SettingsPage()));              },child: Text('Go to input page'),],);  }}

这是包含TextFIEld的页面的代码.

import 'package:Flutter/material.dart';class SettingsPage extends StatefulWidget {  SettingsPage({Key key}) :   super(key: key);  @overrIDe  _SettingsPage createState() => new _SettingsPage();}class _SettingsPage extends State<SettingsPage> {  @overrIDe  Widget build(BuildContext context) {    final key = GlobalKey<ScaffoldState>();    return Scaffold(      key: key,backgroundcolor: colors.white,appbar: Appbar(        Title: Text("Settings"),body: ListVIEw(        children: <Widget>[          Text("Enter something"),// Can't focus on this Widget          TextFIEld(),);  }}

如果我把TextFIEld放在主页面上,我可以很好地专注于TextFIEld,但是不能放在Settings页面的那个上.我认为它与键盘有关,而不是优先于d出页面?或者发生了什么?我如何让应用程序专注于导航页面上的输入字段?

解决方法 所以问题来自于我向脚手架提供GlobalKey的事实.删除密钥可以解决问题.不完全确定原因,但问题主要在 Github issue中解释.

在验证输入时显示错误消息时,我正在使用密钥来显示快餐栏,但现在我选择只在文本小部件中显示错误消息.

总结

以上是内存溢出为你收集整理的dart – 在Flutter中导航后无法在新页面中关注TextField全部内容,希望文章能够帮你解决dart – 在Flutter中导航后无法在新页面中关注TextField所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1000472.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-21
下一篇2022-05-21

发表评论

登录后才能评论

评论列表(0条)

    保存