Создать виджет, который занимает всю доступную ширину экрана и принимает в параметрах конструктора текст произвольной длины вместе с boolean-значением состояния чекбокса.
Внешний вид виджета:
Текст | -------------------- | Чекбокс
Разделители |
показаны условно — визуальных границ между ячейками нет
Виджет состоит из трёх ячеек:
- Переданный текст
- Пунктирная линия от начала до конца ячейки
- Чекбокс с переданным состоянием
Поведение виджета: Средняя ячейка занимает всё доступное ей между остальными элементами место. Сужение виджета сначала приводит к сокращению пунктирной линии до минимального размера 10 пикселей, после чего линия перестаёт быть видимой, а в первой ячейке начинает обрезаться текст с добавлением многоточия. При возвращении виджету необходимого пространства конфигурация ячеек восстанавливается в исходное состояние.
Решение подробно разобрано в статье на Хабре: Хитрый виджет: разбор тестового Flutter-задания. Детективная нуар-история
Чтобы следовать ходу решения из статьи, замените в main.dart
импорт на третьей строке на файл соответствующего шага из папки article
.