Как стать автором
Обновить

Комментарии 5

Буквально вчера на ютуб-канале flutter появился ролик про виджет Gap(XX), но, к сожалению, как сторонний пакет. В комментариях к видео уже предлагают включить его в число стандартных.

В данном кейсе вариант с SizedBox изначально плох тем, что когда Вы поймёте, что 2 блока в одной строке не влезает на маленький экран и захотите начиная с кого-то размера экрана сделать не строку, а колонку, то начнутся проблемы и много условной вёрстки. В то же время с Padding всё будет значительно проще.

Не думаю что от замены SizedBox на Padding код станет сильно чище и читабельнее. Как по мне в списках все же удобнее использовать SizedBox. Я использую SizedBox когда мне нужен только один отступ между двумя элементами с любой стороны, когда нужно больше использую Padding. Когда используется Padding надо еще подумать обернуть им виджет сверху для отступа снизу или виджет снизу для отступа сверху (тоже самое для отступов по горизонтале). Должно быть четкое понимание какому виджету нужен отступ иначе при рефакторинге вы рискуете потратить какое то время на поиск того виджета в который вы этот отступ добавили. Еще часто бывает что виджет переиспользуется. Он может быть изначально задуман таким а может таким оказаться впоследствии. И отступы для него могут быть разные на разных экранах. Если в коде виджета корневым элементом будет Padding, а кто то потом еще и условия добавит для различных отступов этого виджета на разных экранах, вместо того чтобы прописать отступы на самих экранах то это уже будет захламление кода. И вот эти вот вещи важнее как по мне. Правильная композиция и правильное применение отступов. Если мне на работе скажут использовать только Padding то это не будет для меня проблемой, однако в некоторых случаях SizedBox для меня предпочтительнее

Для полноты картины стоит упомянуть другие решения той же проблемы не упомянутые в статье.

Пакет недели gap. Как SizedBox, но более универсальный. https://www.youtube.com/watch?v=MqjCIITfCIA

Управление промежутками дочерних виджетов из родительского контейнера. Приверженцы красивого кода особенно оценят что не нужно добавлять отступы индивидуально для каждого элемента. Из коробки, например, Wrap. Дополнительные варианты контейнеров можно найти в assorted_layout_widgets ColumnSuper, RowSuper, WrapSuper, и т.п.

Постоянно использую пакет gap, который подстраивается под main axis direction и в devtools выглядит, как SizedBox

Он сильно читабельнее коробки и автоматически подстраивается под направление,

до этого сам топил за использование padding, но строго говоря "делай как удобнее", потому что некоторые коллеги могут не понять такой дотошности

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории