Класс ElevatedButtonThemeData
Класс ElevatedButtonThemeData хранит
ButtonStyle для всех
ElevatedButton
в поддереве Theme.
Объект передают в elevatedButtonTheme
у ThemeData. Стиль может задавать цвет фона,
форму и padding через
WidgetStateProperty.
Синтаксис
ElevatedButtonThemeData(
style: ElevatedButton.styleFrom(
backgroundColor: Colors.indigo,
),
)
Параметры
| Параметр | Описание |
|---|---|
style |
Общий стиль залитых кнопок.
Принимает ButtonStyle.
|
Пример
Давайте сделать все ElevatedButton indigo:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
theme: ThemeData(
elevatedButtonTheme: ElevatedButtonThemeData(
style: ElevatedButton.styleFrom(
backgroundColor: Colors.indigo,
foregroundColor: Colors.white,
),
),
),
home: Scaffold(
body: Center(
child: ElevatedButton(
onPressed: () {},
child: Text('abcde'),
),
),
),
),
);
}
На экране кнопка с подписью 'abcde'
станет indigo с белым текстом.
Пример
Давайте увеличим padding через styleFrom:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
theme: ThemeData(
elevatedButtonTheme: ElevatedButtonThemeData(
style: ElevatedButton.styleFrom(
padding: EdgeInsets.symmetric(
horizontal: 32,
vertical: 16,
),
),
),
),
home: Scaffold(
body: Center(
child: ElevatedButton(
onPressed: () {},
child: Text('12345'),
),
),
),
),
);
}
На экране кнопка '12345' станет шире
и выше за счёт padding из темы.
Смотрите также
-
виджет
ElevatedButton,
который читаетElevatedButtonThemeData -
класс
WidgetStateProperty,
которым задают цвета для состояний кнопки -
класс
ThemeData,
где лежит elevatedButtonTheme -
перечисление
WidgetState,
которое описывает pressed и hovered