Метод adaptive
Метод adaptive виджета AlertDialog Конструктор AlertDialog.adaptive на iOS/macOS рисует Cupertino-стиль,
на остальных платформах - Material.
Передают title,
content и actions,
как у обычного диалога.
Удобно с
showAdaptiveDialog.
Синтаксис
AlertDialog.adaptive(
title: Text('abcde'),
content: Text('12345'),
actions: [
TextButton(onPressed: () {}, child: Text('abcde')),
],
)
Параметры
| Параметр | Описание |
|---|---|
title |
Заголовок окна. |
content |
Основной текст или виджет. |
actions |
Кнопки внизу диалога. |
Пример
Давайте откроем adaptive-диалог через showDialog:
import 'package:flutter/material.dart';
void main()
{
runApp(const MaterialApp(home: AdaptiveDlgDemo()));
}
class AdaptiveDlgDemo extends StatelessWidget
{
const AdaptiveDlgDemo({super.key});
@override
Widget build(BuildContext context)
{
return Scaffold(
body: Center(
child: ElevatedButton(
onPressed: () {
showDialog(
context: context,
builder: (BuildContext ctx) {
return AlertDialog.adaptive(
title: Text('abcde'),
content: Text('12345'),
actions: [
TextButton(
onPressed: () {
Navigator.of(ctx).pop();
},
child: Text('abcde'),
),
],
);
},
);
},
child: Text('abcde'),
),
),
);
}
}
Окно подстроится под платформу, где запущено приложение.
Пример
Давайте вызовем showAdaptiveDialog с adaptive-виджетом:
import 'package:flutter/material.dart';
void main()
{
runApp(const MaterialApp(home: AdaptiveShowDemo()));
}
class AdaptiveShowDemo extends StatelessWidget
{
const AdaptiveShowDemo({super.key});
@override
Widget build(BuildContext context)
{
return Scaffold(
body: Center(
child: ElevatedButton(
onPressed: () {
showAdaptiveDialog(
context: context,
builder: (BuildContext ctx) {
return AlertDialog.adaptive(
title: Text('12345'),
content: Text('abcde'),
);
},
);
},
child: Text('12345'),
),
),
);
}
}
showAdaptiveDialog и AlertDialog.adaptive работают в паре.
Смотрите также
-
виджет
AlertDialog,
Material-вариант окна -
функция
showAdaptiveDialog,
показadaptive-окна -
функция
showDialog,
модальный маршрут -
виджет
SimpleDialog,
диалог со списком