Menu
CoddyTech

Исправление переполнения: перенос

Часть раздела Адаптивная компоновка путешествия по Flutter на Coddy. Урок 8 из 30.

Некоторые строки содержат элементы, которые должны располагаться так же, как слова в предложении: теги, фильтры, метки. Если их слишком много для одной строки, содержимое Row выходит за правый край.

Wrap принимает тот же список children: и, если следующий дочерний элемент не помещается в строке, начинает новую строку под ней:

Wrap(
  children: [
    for (final tag in tags) Text(tag),
  ],
)

Это третье решение проблемы переполнения. Используй Expanded, когда один дочерний элемент должен сжиматься, прокручиваемую область — когда страница длиннее экрана, а Wrap — когда дочерние элементы должны переходить на следующую строку.

Wrap сохраняет для каждого дочернего элемента запрошенный им размер. Он никогда не сжимает их, а только переносит на следующую строку.

challenge icon

Задание

Легко

Теги выходят за правый край. Размести их на таком количестве строк, сколько потребуется, как слова в абзаце.

Попробуйте сами

import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    final tags = ['Dart', 'Flutter', 'Mobile', 'Design', 'Games', 'Web'];
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        appBar: AppBar(title: const Text('Interests')),
        body: Padding(
          padding: const EdgeInsets.all(16),
          child: Row(
            children: [
              for (final tag in tags)
                Container(
                  width: 110,
                  height: 40,
                  decoration: BoxDecoration(
                    color: Colors.purple.shade100,
                    borderRadius: BorderRadius.circular(20),
                  ),
                  child: Center(child: Text(tag)),
                ),
            ],
          ),
        ),
      ),
    );
  }
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Адаптивная компоновка

Потренируйтесь самостоятельно: Онлайн-компилятор Flutter