Flutter - 将焦点转移到特定的小部件

8

我正在开发一款针对视力障碍用户的flutter应用。在我的应用程序中,用户使用editbox搜索信息后,应用缺乏通知用户搜索已完成。

我希望通过将焦点转移到搜索结果上,以便屏幕阅读器(Talkback或VoiceOver)阅读它来实现此目标。例如,在Android上,我可以使用:

View.requestFocus();

我正在寻找一种在Flutter或自定义平台代码中执行相同操作的方法。


你找到任何解决方案了吗? - Sakibul Haque
2个回答

4

我想澄清一些误解。我已经在其他地方看到过Aawaz Gyawali的解决方案的变化。这是不起作用的。

Flutter有两种类型的焦点。第一种是“输入焦点”。这确定了当前具有焦点的表单字段,并且这就是FocusNode处理的内容。

第二种焦点是“可访问性焦点”。这是TalkBack / Voiceover提供的框。它与“输入焦点”完全分离。您可以随意更改输入焦点,但可访问性焦点将保持不变。

我们不能在Flutter中更改可访问性焦点,这是一个巨大的疏忽和创建可访问应用程序的主要障碍。

编辑 为了完整起见,我找到了一个丑陋的解决方法。

如果将焦点更改为表单字段(例如文本字段),则可访问性焦点也会更新。

在我的情况下,我正在使用一个几乎没有样式的FlatButton。显然,然后你必须使该按钮执行某些操作,但至少可以让你进入你想要去的领域。

非常Hacky,但鉴于其他选项不佳,这就是我目前拥有的东西。


0
你可以使用FocusNode来实现这个功能,可以在这里查看示例代码。

1
这是为TextEdit小部件设计的,我希望在Text小部件上使用此功能。 - Emad Abbas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接