在Flutter中的嵌套导航中输入焦点

时间:2019-05-31 13:48:09

标签: flutter dart flutter-layout

我正在尝试在Flutter中创建主详细信息平板电脑视图布局,并遇到错误或其他问题。

伪布局

Scaffold
-- Column
---- Navigator => Container => Input (works)
---- Container => Input (no focus)

要旨

我创建了要点来说明问题: https://gist.github.com/markmooibroek/3459f73bbd89deefeb488060f5bfd87e

视频

还有一个视频,显示了错误的行为。第二个输入(以下)未正确聚焦。

https://user-images.githubusercontent.com/1412238/58686402-0507e700-837f-11e9-977d-c16e7a858f27.gif

1 个答案:

答案 0 :(得分:1)

使用嵌套的MaterialApps时会发生这种情况。一种解决方法是使用FocusScopeFocusScopeNode。这将使您可以将精力集中在与主应用程序重叠的其他MaterialApps上。在“覆盖”小部件上使用TextField时也是如此。

因此将显示的内容包装起来:

FocusScope(
   node : FocusScopeNode(),
   child : return Container(
              color: Colors.green,
              child: Center(
                child: TextFormField(
                  controller: controller,
                  decoration: InputDecoration(hintText: "Input"),
                ),
              ),
            );
)

这应该可以让您在该屏幕上获得焦点。