Размещение в углу
Часть раздела Адаптивная компоновка путешествия по Flutter на Coddy. Урок 11 из 30.
Дочерние элементы Stack располагаются в его верхнем левом углу. Чтобы поместить элемент в другое место, оберните его в Positioned и укажите расстояние от краёв:
Stack(
children: [
Container(height: 200, color: Colors.grey),
const Positioned(
bottom: 8,
left: 8,
child: Text('Bottom left'),
),
],
)top:, bottom:, left: и right: — это расстояния в пикселях от соответствующего края Stack. Укажите по одной стороне для каждого направления: top или bottom, а также left или right.
Дочерний элемент Positioned не влияет на размер Stack. Размер по-прежнему определяется фотографией.
Задание
ЛегкоПеремести значок SALE в верхний правый угол фотографии, на расстоянии 12 пикселей от верхнего края и 12 от правого.
Попробуйте сами
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: Scaffold(
appBar: AppBar(title: const Text('Shop')),
body: Padding(
padding: const EdgeInsets.all(16),
child: Column(
children: [
Stack(
children: [
Container(
height: 200,
color: Colors.blueGrey.shade100,
child: const Center(child: Icon(Icons.image, size: 64)),
),
Container(
padding: const EdgeInsets.all(8),
color: Colors.red,
child: const Text('SALE', style: TextStyle(color: Colors.white)),
),
],
),
const SizedBox(height: 12),
const Text('Running shoes', style: TextStyle(fontSize: 20)),
],
),
),
),
);
}
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Адаптивная компоновка
1Совместное размещение в строке
Expanded заполняет строкуДелим пространство с flexFlexible подстраивается под размер дочернего элементаSpacer раздвигает элементы2Ошибка переполнения
Ошибка переполненияИсправление переполнения: расширениеИсправление переполнения: прокруткаИсправление переполнения: переносИнтервалы внутри переноса5Перечисления и switch
Перечисления для типов экрановКонструкция switch с перечислениемВыражения switch3Компоновка виджетов в стопку
Расположить виджеты друг над другомРазмещение в углуВыравнивание внутри блокаSafeArea и вырез экранаПотренируйтесь самостоятельно: Онлайн-компилятор Flutter