Виджет Align в Flutter
Виджет
Align
получает от родителя прямоугольник больше,
чем потомок, и сдвигает потомка в нужную
точку этого прямоугольника. Позиция задаётся
через alignment - константы вроде
Alignment.center, Alignment.topLeft
или дробные координаты от −1 до 1 по осям:
import 'package:flutter/material.dart';
void main() {
runApp(const MaterialApp(home: HomePage()));
}
class HomePage extends StatelessWidget {
const HomePage({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
body: Align(
alignment: Alignment.bottomRight,
child: Padding(
padding: const EdgeInsets.all(16),
child: Text('Corner'),
),
),
);
}
}
Виджет
Center
- частный случай Align с
Alignment.center. Когда нужен не
центр, а, например, правый нижний угол
или середина левого края, явный Align
понятнее. Сдвиг не виден, если родитель
не больше потомка:
SizedBox(
height: 120,
width: double.infinity,
child: Align(
alignment: Alignment.centerLeft,
child: Icon(Icons.label),
),
)
На весь body поместите такую
цепочку:
Align(
alignment: Alignment.topCenter,
child: Padding(
padding: EdgeInsets.only(top: 16),
child: Text('Header'),
),
)
Надпись у верхнего края, по центру ширины.