Flutter / Dart 中的 AcessibilityEvent
Posted
技术标签:
【中文标题】Flutter / Dart 中的 AcessibilityEvent【英文标题】:AcessibilityEvent in Flutter / Dart 【发布时间】:2019-06-15 10:11:20 【问题描述】:我花了 3 周时间寻找如何将辅助功能事件与 dart 一起使用,有人得到了什么吗?我在文档中没有找到任何内容
【问题讨论】:
这不准确 【参考方案1】:可通过Semantics 小部件提供辅助功能信息。 Material 和 Cupertino 库中的大多数小部件已经提供相关语义,例如将MaterialButton
s 标识为按钮等。 Semantics
小部件仅在您使用原始布局或画家创建自己的小部件时才是必需的。
例如,假设您想制作自己的按钮并从 Text
小部件和手势检测器开始。
Widget build(_)
return Container(
child: GestureDetector(
onTap: () ...
child: Text('MY BUTTON'),
)
);
这将包含来自Text
和GestureDetector
小部件的一些语义信息。在运行应用程序时,如果启用了 TalkBack 或 VoiceOver,则可以按S
(大写“S”)打印当前语义树。
[ +6 ms] I/flutter ( 6511): SemanticsNode#0
[ ] I/flutter ( 6511): │ Rect.fromLTRB(0.0, 0.0, 1080.0, 1794.0)
[ ] I/flutter ( 6511): │
[ ] I/flutter ( 6511): └─SemanticsNode#1
[ ] I/flutter ( 6511): Rect.fromLTRB(0.0, 0.0, 79.0, 16.0) with transform
[ ] I/flutter ( 6511): [2.625,0.0,0.0,436.3125; 0.0,2.625,0.0,876.0; 0.0,0.0,1.0,0.0;
[ ] I/flutter ( 6511): 0.0,0.0,0.0,1.0]
[ ] I/flutter ( 6511): actions: tap
[ ] I/flutter ( 6511): label: "MY BUTTON"
[ ] I/flutter ( 6511): textDirection: ltr
在这种情况下,要将其明确标识为按钮,您可以使用 Semantics
小部件包装小部件并提供 button: true
和 container: true
。
Widget build(_)
return Semantics(
container: true,
button: true,
child: Container(
child: GestureDetector(
onTap: () ...
child: Text('MY BUTTON'),
)
)
);
【讨论】:
【参考方案2】:不,我的意思是可访问性事件,以自动化我的 Gizmo 并在未来在 Flutter 上制作团队查看器
发送点击等。
【讨论】:
【参考方案3】:查看此链接。它在颤振中引入了可访问性桥,可用于实现您想要的。
https://api.flutter.dev/javadoc/io/flutter/view/AccessibilityBridge.html
【讨论】:
虽然这在理论上可以回答问题,it would be preferable 在此处包含答案的基本部分,并提供链接以供参考。以上是关于Flutter / Dart 中的 AcessibilityEvent的主要内容,如果未能解决你的问题,请参考以下文章
为啥我们在 Flutter/Dart 中的 catch 参数中加上“e”?
如何使用 Dart / Flutter 中的列表从列表中删除重复元素?