Flutter Widget 之Semantics

448 阅读1分钟

Flutter有大量的widget,可以用来描述应用程序的UI组建和行为。

若您使用Flutter构建了应用程序,那么您可能对它们非常熟悉。

您可能不知道的是Flutter还有一个widget,可以用来描述UI,这个widget就是Semantics

想象一下联系人应用程序的屏幕,它的堆栈中有两个widget背景和一个圆形头像

其中一个widget非常重要,另一个则不太重要,这对屏幕阅读器、搜索引擎和其他语义分析工具来说非常重要。

你可以通过Semantics包装每个widget来提供该信息

Semantics(
    child: FaceImage(
        file: '$name.png',
    ),
)

Semantics具有许多属性,例如文本描述label

是否该启用或关闭widget,enabled

或它所代表的是输入元素还是仅限读取的字段 readOnly

Semantics(
    child: FaceImage(
        file: '$name.png',
    ),
    label: 'An image of $name.',
    enabled: true,
    readOnly: true,
)

Semantics有近50个属性可用于为UI提供额外的含义

如果想了解有关Semantics的内容,或者关于Flutter的其他功能,请访问flutter.dev

原文翻译自视频:视频地址