AutoFocus在PageView中的多个状态小部件中不起作用

时间:2019-01-25 15:54:42

标签: flutter autofocus

因此,我在一系列“步骤”中共有5页,以完成一项操作。这一切都很好,花花公子。我正在将PageView与各个子页面一起使用。

问题是,只有第一页(在TextField小部件上具有自动焦点)才真正获得焦点。当用户遍历其他表单类型页面时-即使有自动对焦:每个页面都为true ..不会触发它们,也不会设置任何焦点。

这使我感到困惑。每个页面在页面之间移动时都会“实时”渲染(并销毁)..因此不确定为什么未设置焦点。

一般的小部件树是

Scaffold
   PageView
     [children pages]

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

有点困惑-帮助表示赞赏!

干杯!

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,并使用焦点节点解决了它。 就我而言,pageView的所有子级都是有状态的小部件

解决方案:

final FocusNode _focusNode = FocusNode();

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

比在窗口小部件中

child: TextFormField(
    focusNode: _focusNode,
)