Flutter: белый экран во время запуска приложения

У приложений под Android есть такое неприятное свойство, что инициализация первого экрана может продлится довольно большое время. И всё это время телефон будет показывать не красивый белый экран. Однако решение есть, причём совершенно стандартное. Уже заранее всё сделано, осталось только добавить картинку в /android/app/src/main/res/drawable (если сборка под API <21) или /android/app/src/main/res/drawable-v21, и поправить соответствующий файл /android/app/src/main/res/drawable-v21/launch_background.xml приведя его например к виду:

В итоге при запуске приложения экран будет более приятным:

Flutter: checkbox в приложении

Для того чтобы получить отображение чекбокса вида:

Необходимо использовать виджет Checkbox. Положим его в контейнер, а контейнер разделим на две части: в первой будет текст, а во второй чекбокс:

Табы в приложении

Одним из вариантов организации меню в приложении, является организация «табов», которые могут располагаться как внизу экрана, так и вверху. Например что-то вроде:

Это изображение имеет пустой атрибут alt; его имя файла - %D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5-2.png

Для начала создадим отдельную функцию отрисовки табов:

isScrollable — отвечает за плавное переключение табов. Если эффект анимации не нужен — можно отключить.

Далее главный виджет:

При отрисовке в методе TabBar можно использовать следующие настройки:

  • isScrollable = true/false = плавный скроллинг
  • padding = отступы
  • indicatorColor = цвет подсветки
  • indicatorWeight = 2.0 = толщина подчёркивания
  • indicatorPadding = EdgeInsets.zero = отступы подчёркивания
  • indicatorSize = размер чёрточки
  • labelColor = цвет текста таба
  • labelStyle = стиль текста таба
  • labelPadding = отступы между метками
  • unselectedLabelColor = цвет не выделенного таба
  • unselectedLabelStyle = стиль не выделенного таба
  • onTap = действие при выборе

Flutter: реализация «смахивания» в приложении.

Задача: реализовать удаление позиции из списка «смахиванием».

Решение: используем для этого виджет Dismissible. Обернем в него каждый пункт в ListView. Ну собственно в него можно оборачивать любой виджет.

Из интересного: метод direction отвечает за то, как именно разрешено «смахивать». В примере это «от старта до конца». Т.е. слева на право. Доступные варианты:

Flutter: скроллинг до элемента в списке

Задача: позиционировать по нажатию кнопки список на нужном элементе списка.

Решение: используем пакет scroll_to_index:

Код:

1 3 4 5 6 7 10