Виджет ExcludeSemantics
Виджет ExcludeSemantics отрезает поддерево
от озвучивания: декоративные иконки и фон
не мешают навигации диктора. Параметр
excluding включает или выключает
исключение, по умолчанию true.
child задаёт скрываемую область.
Синтаксис
ExcludeSemantics(
child: Icon(Icons.star),
)
Параметры
| Параметр | Описание |
|---|---|
child |
Дочерний виджет, который не попадёт в семантику. Обязательный параметр. |
excluding |
Если true, дочерние узлы исключаются.
Если false, обёртка прозрачна.
|
Пример
Давайте спрячем декоративную звезду от диктора:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: Row(
mainAxisSize: MainAxisSize.min,
children: [
const Text('abcde'),
ExcludeSemantics(
child: Icon(Icons.star, color: Colors.amber),
),
],
),
),
),
),
);
}
На экране текст и звезда видны зрячему пользователю,
диктор прочитает только 'abcde'.
Пример
Давайте временно вернём семантику через excluding:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: ExcludeSemantics(
excluding: false,
child: const Text('12345'),
),
),
),
),
);
}
На экране строка '12345' снова доступна диктору,
потому что исключение выключено.
Смотрите также
-
виджет
Semantics,
который явно задаёт описание элемента -
виджет
MergeSemantics,
который объединяет несколько узлов в один -
виджет
SemanticsDebugger,
который помогает проверить дерево на экране -
виджет
Icon,
который часто прячут черезExcludeSemantics