Класс VisualDensity
Класс VisualDensity описывает сжатие
по горизонтали и вертикали для кнопок,
списков и других виджетов Material.
Значение передают в visualDensity
у ThemeData. Готовые константы:
standard, compact и comfortable.
Числа задают поля horizontal и vertical.
Синтаксис
VisualDensity.compact
Параметры
| Параметр | Описание |
|---|---|
horizontal |
Насколько плотнее или свободнее раскладка по горизонтали. |
vertical |
Насколько плотнее или свободнее раскладка по вертикали. |
Пример
Давайте включим компактную плотность в теме:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
theme: ThemeData(
visualDensity: VisualDensity.compact,
),
home: Scaffold(
body: Center(
child: ElevatedButton(
onPressed: () {},
child: Text('abcde'),
),
),
),
),
);
}
На экране кнопка 'abcde' станет ниже
и уже из-за VisualDensity.compact.
Пример
Давайте зададим comfortable для просторных отступов:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
theme: ThemeData(
visualDensity: VisualDensity.comfortable,
),
home: Scaffold(
body: Center(
child: ListTile(
title: Text('12345'),
subtitle: Text('abcde'),
),
),
),
),
);
}
На экране ListTile с текстами '12345'
и 'abcde' получит больше вертикального места.
Смотрите также
-
класс
ThemeData,
куда передают visualDensity -
виджет
ListTile,
высота которого зависит от плотности -
виджет
ElevatedButton,
который учитываетVisualDensity -
класс
Padding,
который задаёт отступы вручную, а не через тему