Вступление

В этой серии я перечислю пять вещей, которые, как мне кажется, должен знать каждый разработчик флаттера. Обладая большим опытом и наблюдательностью, я создам больше деталей. Если вы опытный разработчик флаттера, возможно, вы уже знаете их, но я все равно выложу их. Кто знает! Кому-то они могут показаться интересными.

№ 1: Контейнер - Швейцарский армейский нож.

Контейнер - очень мощный виджет, но иногда мы упускаем некоторые из его преимуществ при работе с ним. Я не могу сосчитать, сколько раз я упускал возможность воспользоваться этим инструментом и в конечном итоге добавлял ненужные виджеты в дерево виджетов. Я называю его виджетом виджетов, потому что один контейнер имеет свойства некоторых других виджетов Flutter, таких как Выровнять, Заполнение, ConstrainedBox и т. Д. При правильном использовании. Вы можете прочитать статью Flutter’s Container: This ain’t your Daddy's div, чтобы узнать о других удивительных свойствах контейнера.

В приведенном ниже примере кода показаны примеры фрагментов кода, дающих аналогичные результаты, причем второй код использует преимущества контейнеров.

№ 2: не анимируйте виджет непрозрачности

Анимация виджета Непрозрачность напрямую заставляет виджет (и, возможно, его поддерево) перестраивать каждый кадр, что не очень эффективно. Вместо этого рассмотрите возможность использования AnimatedOpacity.

Согласно документации непрозрачности анимации виджета непрозрачности следует избегать. Для реализации аналогичного поведения предпочтительнее использовать виджет AnimatedOpacity или FadeTransition.

№ 3: рассмотрите возможность использования каскадной нотации (..)

Каскадная нотация позволяет вызывать несколько методов для одного и того же объекта. Если вы переходите с других языков ООП, может показаться странным видеть этот синтаксис, потому что для достижения этого на других языках требуется, чтобы вы возвращали this из методов.

Это часто избавляет вас от необходимости создавать временную переменную и позволяет писать более гибкий код.

Типичный пример того, когда может пригодиться каскадная нотация, - это создание пользовательского клиппера.

№ 4: подходящая коробка для вас

Были ли вы когда-нибудь в ситуации, когда вы хотите, чтобы виджет поместился в другой виджет или на экран независимо от размера? Если у вас возникла такая потребность, приспособленный бокс - то, что вам нужно.

В приведенном ниже примере я пытаюсь уместить числовые поля в ряду в разные контейнеры разного размера. Это приводит к переполнению во втором и третьем случае, так как содержимое строки номера больше, чем контейнеры.

В приведенном ниже случае я просто обернул строку числового поля виджетом FittedBox, и он быстро скорректировал числовое поле, чтобы оно идеально вписывалось во все контейнеры.

№ 5. Отменить новое ключевое слово

Если вы новичок во Flutter, вы можете столкнуться с некоторыми старыми кодами, в которых экземпляры объектов создаются с помощью ключевого слова new. Его использование стало необязательным с появлением Dart 2 (подробнее о нем можно узнать здесь). Написание кода без ключевого слова new делает работу с ним намного удобнее.

Заключение

С Flutter очень интересно работать, и чем больше вы с ним работаете, тем больше вы узнаете о нем нового. После этого я напишу еще несколько статей, чтобы внести свой вклад в сообщество флаттера.