Виджет IconTheme
Виджет IconTheme кладёт в дерево
IconThemeData.
Данные передают в data,
поддерево - в child.
Все Icon
ниже читают цвет и размер из этой темы,
если не заданы явно.
Прочитать тему помогает метод of.
Синтаксис
IconTheme(
data: iconThemeData,
child: child,
)
Параметры
| Параметр | Описание |
|---|---|
data |
Цвет, размер и прозрачность иконок.
Принимает IconThemeData.
|
child |
Дочерние виджеты, для которых действует тема иконок. |
Методы
| Метод | Описание |
|---|---|
of |
Возвращает IconThemeData из ближайшего IconTheme.
|
Пример
Давайте зададим красный цвет всем иконкам:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: IconTheme(
data: IconThemeData(
color: Colors.red,
size: 40,
),
child: Row(
mainAxisSize: MainAxisSize.min,
children: [
Icon(Icons.star),
SizedBox(width: 16),
Text('abcde'),
],
),
),
),
),
),
);
}
На экране звезда станет красной размером 40,
рядом текст 'abcde'.
Пример
Давайте уменьшим иконки через IconThemeData:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: IconTheme(
data: IconThemeData(size: 20),
child: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Icon(Icons.home),
Text('12345'),
],
),
),
),
),
),
);
}
На экране иконка дома и подпись '12345'
окажутся по центру, иконка будет компактной.
Смотрите также
-
класс
IconThemeData,
который хранит color и size иконок -
метод
of,
который читаетIconThemeDataиз контекста -
виджет
Theme,
вThemeDataкоторого есть iconTheme -
виджет
Icon,
который использует тему иконок