【问题标题】:AutoFocus isn't working in multiple Stateful widgets within a PageViewAutoFocus 在 PageView 中的多个有状态小部件中不起作用
【发布时间】:2019-01-25 15:54:42
【问题描述】:

所以我有 5 页的一系列“步骤”来完成一个动作。这一切都很好,花花公子。我正在使用带有各种子页面的 PageView。

问题是只有第一页(在 TextField 小部件上具有自动对焦)实际上获得了焦点。当用户遍历其他表单类型的页面时——即使每个页面都有一个 autofocus: true .. 它们没有被触发,也没有设置焦点。

这对我来说是令人困惑的行为。当从一个页面到另一个页面时,每个页面都被“动态”渲染(并被销毁)..所以不确定为什么没有设置焦点。

一般的小部件树是

Scaffold
   PageView
     [children pages]

所以也许它与焦点在 Scaffold 上下文级别有关,因此.. 啊.. 我实际上不知道.. 我想当具有自动对焦功能的子页面 2 时--会-构建时再次设置整体上下文自动对焦?

相当困惑——感谢帮助!

干杯!

【问题讨论】:

    标签: flutter autofocus


    【解决方案1】:

    我遇到了同样的问题并使用焦点节点解决了它。 在我的例子中,pageView 的所有孩子都是有状态的小部件

    解决方案:

    final FocusNode _focusNode = FocusNode();
    
    @override
    void initState() {
        WidgetsBinding.instance.addPostFrameCallback((_) =>FocusScope.of(context).requestFocus(_focusNode));
    }
    

    比在你的小部件中

    child: TextFormField(
        focusNode: _focusNode,
    )
    

    【讨论】:

      猜你喜欢
      • 2019-05-09
      • 2021-10-28
      • 2019-06-20
      • 1970-01-01
      • 2021-10-05
      • 2020-08-31
      • 1970-01-01
      • 2018-12-04
      • 2020-02-19
      相关资源
      最近更新 更多