Flutter 自动对焦不是';t在一个页面视图中使用多个有状态小部件

Flutter 自动对焦不是';t在一个页面视图中使用多个有状态小部件,flutter,autofocus,Flutter,Autofocus,所以我在一系列“步骤”中有5页来完成一个动作。这一切都很好。我正在使用一个页面视图和各种子页面 问题是,只有第一个页面(在TextField小部件上有自动聚焦)真正获得了焦点。当用户遍历其他表单类型页面时——即使每个页面上都有一个自动聚焦:true。。他们没有被炒鱿鱼,也没有设置任何焦点 这对我来说是令人困惑的行为。当从一页转到另一页时,每一页都被“动态”呈现(并被销毁)。。所以我不确定为什么没有设定焦点 通用小部件树是 Scaffold PageView [children p

所以我在一系列“步骤”中有5页来完成一个动作。这一切都很好。我正在使用一个页面视图和各种子页面

问题是,只有第一个页面(在TextField小部件上有自动聚焦)真正获得了焦点。当用户遍历其他表单类型页面时——即使每个页面上都有一个自动聚焦:true。。他们没有被炒鱿鱼,也没有设置任何焦点

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

通用小部件树是

Scaffold
   PageView
     [children pages]
因此,可能这与关注点在脚手架上下文级别有关,因此。。啊。。其实我不知道。。我会想,当第2页有一个自动对焦功能时,会在构建时再次设置整个上下文的自动对焦功能吗

相当困惑——感谢帮助


干杯

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

解决方案:

final FocusNode _focusNode = FocusNode();

@override
void initState() {
    WidgetsBinding.instance.addPostFrameCallback((_) =>FocusScope.of(context).requestFocus(_focusNode));
}
而不是在你的小部件中

child: TextFormField(
    focusNode: _focusNode,
)