首页 > 解决方案 > Flutter - 加载小部件/页面时如何使用focusNode

问题描述

我是 Flutter 的新手,我正在为我的 Flutter App 创建一个设置页面。在设置页面上,我正在使用 formbuilder。Hive当焦点位于“设置”页面(实际上是一个选项卡)时,我想从存储的值中填充表单的字段。显然 focusNode 是要走的路。但是,我看到的所有示例都集中在 TextFields 上,而不是 Widget 或 Page 本身。

谁能用一个很好的例子指导我如何做到这一点?例如,如果页面/小部件被加载到移动屏幕上,则应显示一条消息。

标签: flutterhivewidgetfocusflutter-layout

解决方案


您需要首先创建一个有状态的小部件,并且状态小部件有一个名为 initState 的方法,该方法在该小部件的构建方法被调用之前被调用。focusNode 只能与 Input 小部件一起使用

class SettingsScreen extends StatefulWidget {
  @override
  _SettingsScreenState createState() => _SettingsScreenState();
}

class _SettingsScreenState extends State<SettingsScreen> {

  bool _showDialog = false;
  @override
  void initState() {
    // TODO: implement initState

    // do your thing, perhaps call showDialog ?
     _showDialog=  true;
    super.initState();
  }

  @override
  Widget build(BuildContext context) {

    if(_showDialog) {
      showDilaog()
   }

    return Container(

    );
  }
}


推荐阅读