TGViewer
Flutter. Много Flutter. Много @flutter_amiga · 2.96K subscribers
Post #624 1.2K
Hola, Amigos! Сегодня посмотрим на один пакет, который может быть полезен в разработке - paged_vertical_calendar.

Он выводит календарь непрерывным вертикальным списком вместо одного месяца переключением. Это полезно в таких случаях:
⭕️ Нужно показать сразу несколько месяцев;
⭕️ Есть выбор интервала дат, которые могут быть в разных месяцах;
⭕️ Нужен другой UX, чем стандартный.

Давайте разберем его базовое использование:


PagedVerticalCalendar(
minDate: DateTime.now().subtract(Duration(days 365)),
maxDate: DateTime.now().add(Duration(days 365)),
initialDate: DateTime.now().add(Duration(days 3)),
invisibleMonthsThreshold: 1,
startWeekWithSunday: true,
onMonthLoaded: (year, month) {
// on month widget load
},
onDayPressed: (value) {
// on day widget pressed
},
onPaginationCompleted: (direction) {
// on pagination completion
},
);


Пройдемся по его параметрам:
• minDate и maxDate помогают нам сделать календарь не бесконечным;
• initialDate - дата начального месяца, который будет показан пользователю посередине списка;
• invisibleMonthThreshold - количество месяцев, которые пользователь не видит, но они просчитываются для дальнейшего отображения;
• startWeekWithSunday - полезное свойство, если приложение работает в странах, где неделя начинается с воскресенья, а не с понедельника;
• onMonthLoaded, onPaginationCompleted - обратные вызовы, которые помогают подгружать данные, если это нужно;
• onDayPressed - обработка нажатия на какой-либо день.

Так как это все-таки список, то ему доступны еще параметры, которые есть у других похожих виджетов - controller, physics, addAutomaticKeepAlives и reverse.

Но самое интересное и важное, что такой календарь можно максимально кастомизировать под себя следующими параметрами:
• dayAspectRatio - помогает задать соотношение сторон для виджета дня;
• weekdaysToHide - скрывает дни недели, если нужно показать только определенные. Например, только рабочие дни;
• listPadding - позволяет задать отступы у списка;
• monthBuilder - позволяет кастомизировать шапку месяца под себя;
• dayBuilder - позволяет кастомизировать отображение дня на календаре.

Рассказывайте, решали ли уже подобные задачи и пользовались ли этим пакетом в своих проектах?
  • 👍 8
  • ❤ 1
  • 🔥 1
More from @flutter_amiga
  1. Sep 9, 2026AI BOOST’26: выручка падает — что делают крупные digital-агентства и при чем здесь AI 22–2…
  2. Aug 18, 2026Hola, Amigos! На связи Павел Гершевич, Mobile Team Lead в Amiga. Сегодня посмотрим на чек-…
  3. Aug 13, 2026Hola, Amigos! Сегодня вышли Flutter 3.47 и Dart 3.13. Давайте вместе разберемся, что в них…
  4. Jul 31, 2026Дайджест июля Hola, Amigos! Собрали в одну подборку все полезные посты июля, которые вы мо…
  5. Jul 24, 2026Hola, Amigos! Сегодня мы вводим новую рубрику - обзоры правил для статического анализатора…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →