Flutter Pulse
525 subscribers
350 photos
770 links
На канале будут новости про flutter с сайтов, информация об обновлении пакетов, а также авторский контент.
Download Telegram
Как создать список чекбоксов с помощью CheckboxListTile

Привет, подписчики! 👋 Сегодня мы рассмотрим, как легко создать список чекбоксов в вашем Flutter-приложении, используя виджет CheckboxListTile. 📝

Преимущества CheckboxListTile:
- Упрощает создание списков с чекбоксами
- Позволяет легко управлять состоянием выбранных элементов
- Поддерживает стандартный стиль Material Design

Пример кода:


class SkillsFilterList extends StatelessWidget {
final SkillsFilter skillsFilter;
final Function() onChanged;

const SkillsFilterList({
Key? key,
required this.skillsFilter,
required this.onChanged,
}) : super(key: key);

@override
Widget build(BuildContext context) {
return ListView.separated(
shrinkWrap: true,
physics: const BouncingScrollPhysics(),
itemCount: skillsFilter.value.length,
separatorBuilder: (context, index) => const SizedBox.shrink(),
itemBuilder: (context, index) {
final skill = this.skillsFilter.value[index];
return ListTileTheme(
contentPadding: EdgeInsets.all(0),
child: CheckboxListTile(
dense: true,
title: Text(skill.scopeName),
value: skill.chosed,
onChanged: (skill) {
skillsFilter.select(skill);
onChanged();
},
),
);
},
);
}
}



Ключевые моменты:
ListView.separated используется для создания списка с разделителями
CheckboxListTile упрощает создание элемента списка с чекбоксом и текстом
✦ Свойство onChanged обрабатывает изменения состояния чекбокса

Оцените эту рубрику и напишите в комментариях, какие темы вы хотели бы видеть в будущих выпусках! 💬

Все подобные новости можно найти по хэштегу #FlutterPulseTips

#flutter #dart #flutterpulse #FlutterPulseTips #MobileDev #UIUX #FlutterTips #AppDevelopment #CodingTips
👍31
Самые лучшие обновлённые пакеты за последние 24 часа

google_maps_flutter_web 0.5.13 - плагин для интеграции Google Maps в веб-приложения Flutter. Обновлена минимальная поддерживаемая версия SDK до Flutter 3.29/Dart 3.7, исправлена проблема с consumeTapEvents для кругов, полигонов и полилиний на веб-платформе.
👍 Лайки: 236, 📥 Скачиваний: 397К
https://pub.dev/packages/google_maps_flutter_web

dwds 25.0.2 - позволяет инструментам разработчика работать с веб-приложениями Dart. Исправлена ошибка инициализации, если у DWDS уже есть существующие клиенты.
👍 Лайки: 30, 📥 Скачиваний: 4.1М
https://pub.dev/packages/dwds

flutter_slidable 4.0.1 - используется для создания слайдящихся элементов списка. Исправлена проблема с auto_close_behavior, где не вызывался removeStatusListener.
👍 Лайки: 5940, 📥 Скачиваний: 504К
https://pub.dev/packages/flutter_slidable

map_launcher 4.4.0 - позволяет найти доступные карты на устройстве и запустить их с меткой или показать направления. Теперь поддерживается карта Neshan.
👍 Лайки: 920, 📥 Скачиваний: 163К
https://pub.dev/packages/map_launcher

icons_launcher 3.0.2 - упрощает задачу обновления иконки запуска приложения Flutter. Теперь поддерживает все основные платформы и добавлена поддержка вкусов для macOS.
👍 Лайки: 934, 📥 Скачиваний: 344К
https://pub.dev/packages/icons_launcher

dart_frog 1.2.3 - теперь с стандартизированными опциями анализа и возможностью доступа к захваченным параметрам запроса.
👍 Лайки: 802, 📥 Скачиваний: 22.3К
https://pub.dev/packages/dart_frog

#Flutter #Dart #PubDev #FlutterPulse #FlutterPulseBestPackages #google_maps_flutter_web #dwds #flutter_slidable #map_launcher #icons_launcher #dart_frog
👍2
Кнопка с градиентом и анимацией

Привет, подписчики! 👋 Сегодня мы рассмотрим интересный пример создания анимированной кнопки с градиентным фоном во Flutter. 📱

Основная идея:
Мы создадим кнопку, у которой при нажатии будет изменяться градиентный фон с анимацией. Для этого мы используем AnimatedGradientButton, который будет обрабатывать анимацию.

Код примера:


class AnimatedGradientButton extends StatefulWidget {
final Text? label;
final Gradient gradient;
final Gradient onPushGradient;
final Icon? icon;
final Function()? onPressed;

AnimatedGradientButton({
this.label,
required this.gradient,
required this.onPushGradient,
this.icon,
this.onPressed,
});

@override
_AnimatedGradientButtonState createState() => _AnimatedGradientButtonState();
}

class _AnimatedGradientButtonState extends State<AnimatedGradientButton>
with TickerProviderStateMixin {
late AnimationController _controller;
late Animation<double> _animation;

@override
void initState() {
super.initState();
_controller = AnimationController(
duration: Duration(milliseconds: 1000),
vsync: this,
);
_animation = CurvedAnimation(curve: Curves.decelerate, parent: _controller);
}

@override
Widget build(BuildContext context) {
return AnimatedBuilder(
animation: _controller,
builder: (context, child) {
return Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(24),
gradient: LinearGradient(
colors: widget.gradient.colors.map((color) => Color.lerp(
color,
widget.onPushGradient.colors[widget.gradient.colors.indexOf(color)],
_animation.value,
)).toList(),
),
),
child: MaterialButton(
onPressed: () {
_controller.forward();
widget.onPressed?.call();
_controller.reverse();
},
child: widget.label,
),
);
},
);
}
}



Как это работает:
1. Мы оборачиваем MaterialButton в контейнер с градиентным фоном.
2. При нажатии на кнопку запускается анимация, которая изменяет градиент от исходного к целевому.
3. Color.lerp используется для плавного перехода между цветами градиента.

Перспективы:
- Можно создать собственный объект рендеринга.
- Полностью переработать кнопку без использования MaterialButton.
- Расширить ButtonStyleButton как обычные кнопки.

Оцените новую рубрику и напишите в комментариях, что хотели бы увидеть дальше! 👍 Оцените пост и подпишитесь 😉

Все подобные новости можно найти по хэштегу #FlutterPulseTips

#flutter #dart #flutterpulse #FlutterPulseTips #MobileDevelopment #UIUX #Animation #FlutterTips #DartLang #GradientButton #AnimatedButton
🔥2👍1
Обзор пакетов на тему "Списки" для Flutter 📝

flutter_slidable 🔄
Пакет позволяет создавать списки с элементами, которые можно сдвигать в разные стороны, вызывая различные действия.
👍 Лайки: 5940, 📥 Скачиваний: 504К
Последнее обновление 📅: 16 часов назад
https://pub.dev/packages/flutter_slidable

drag_and_drop_lists 📈
Этот пакет позволяет создавать списки с возможностью перетаскивания элементов между собой и внутри списков.
👍 Лайки: 445, 📥 Скачиваний: 13.2К
Последнее обновление 📅: 8 месяцев назад
https://pub.dev/packages/drag_and_drop_lists

searchable_listview 🔍
Этот пакет позволяет легко фильтровать списки, поддерживает асинхронные списки, сортировку, пагинацию и многое другое.
👍 Лайки: 256, 📥 Скачиваний: 3.85К
Последнее обновление 📅: 24 дня назад
https://pub.dev/packages/searchable_listview

animated_reorderable_list 🔄
Пакет позволяет создавать анимированные списки и сетки с функцией перетаскивания элементов.
👍 Лайки: 168, 📥 Скачиваний: 12.2К
Последнее обновление 📅: 4 месяца назад
https://pub.dev/packages/animated_reorderable_list

indexed_list_view 📊
Пакет позволяет создавать списки с возможностью мгновенного перехода к любому элементу по индексу.
👍 Лайки: 223, 📥 Скачиваний: 1.98К
Последнее обновление 📅: 9 месяцев назад
https://pub.dev/packages/indexed_list_view

flutter_swipe_action_cell 🚀
Этот пакет позволяет создавать ячейки, которые можно свайпать, как в iOS.
👍 Лайки: 448, 📥 Скачиваний: 19.6К
Последнее обновление 📅: 10 месяцев назад
https://pub.dev/packages/flutter_swipe_action_cell

#flutter #dart #pubdev #flutterpulse #flutterpulsethemedpackages #flutter_slidable #drag_and_drop_lists #searchable_listview #animated_reorderable_list #indexed_list_view #flutter_swipe_action_cell
Самые лучшие обновлённые пакеты за последние 24 часа

flutter_multi_formatter 2.13.9
Плагин для форматирования телефонных номеров, кредитных карт, денег и других данных в приложениях Flutter.
В новой версии добавлена маска телефонного номера для Финляндии.
👍 Лайки: 594, 📥 Скачиваний: 155К
https://pub.dev/packages/flutter_multi_formatter

flutter_inapp_purchase 6.4.3
Плагин для реализации покупок внутри приложения в Flutter, соответствуя спецификации Open IAP.
В новой версии исправлены ошибки, улучшена безопасность типов и добавлена поддержка миллисекундных меток времени для полей даты.
👍 Лайки: 421, 📥 Скачиваний: 6.5К
https://pub.dev/packages/flutter_inapp_purchase

bottom_picker 4.1.1
Плагин для создания красивых и настраиваемых нижних выборщиков в приложениях Flutter.
В новой версии исправлена ошибка и добавлен флаг SafeArea для управления видимостью области безопасности в виджете bottom picker.
👍 Лайки: 343, 📥 Скачиваний: 14.9К
https://pub.dev/packages/bottom_picker

gql_code_builder 0.15.0
Плагин для генерации полезных классов из документов GraphQL и SDL.
В новой версии удален параметр allocator из публичных API, а также улучшена разделение задач между генерацией кода и управлением импортом.
👍 Лайки: 5, 📥 Скачиваний: 223К
https://pub.dev/packages/gql_code_builder

pdfrx 2.1.5
Плагин для просмотра PDF-файлов в приложениях Flutter.
В новой версии исправлена ошибка, связанная с перезагрузкой документа при каждом изменении виджета.
👍 Лайки: 246, 📥 Скачиваний: 216К
https://pub.dev/packages/pdfrx

Flame 1.31.0
Игровой движок на основе Flutter, предназначенный для создания игр.
В новой версии исправлены ошибки, добавлена поддержка моделирования и рендеринга в 3D, а также skeletal анимаций.
👍 Лайки: 2210, 📥 Скачиваний: 86К
https://pub.dev/packages/flame

#flutter #dart #pubdev #FlutterPulse #FlutterPulseBestPackages #flutter_multi_formatter #flutter_inapp_purchase #bottom_picker #gql_code_builder #pdfrx #Flame
Работаем с клавиатурными сокращениями

При создании приложений для Flutter Web или Desktop, важно обеспечить удобное управление клавиатурными сокращениями. В этом нам помогут виджеты Shortcuts и Actions! 🚀

Shortcuts - это виджет, который создаёт привязку клавиш к определённым действиям для своих потомков. Всё просто: вы предоставляете карту клавиш и интенций (Intent).

Actions - этот виджет позволяет потомкам вызывать действия, определённые в родителе. Его можно использовать как вместе с Shortcuts, так и отдельно 😉

Давайте рассмотрим пример кода:

// Это просто используется для указания нужного действия
class SelectAllIntent extends Intent {}

@override
Widget build(BuildContext context) {
return Shortcuts(
shortcuts: <LogicalKeySet, Intent>{
LogicalKeySet(LogicalKeyboardKey.control, LogicalKeyboardKey.keyA): SelectAllIntent(),
},
child: Actions(
dispatcher: LoggingActionDispatcher(),
actions: <Type, Action<Intent>>{
SelectAllIntent: SelectAllAction(),
},
child: Builder(
builder: (BuildContext context) => TextButton(
onPressed: Actions.handler<SelectAllIntent>(context, SelectAllIntent()),
child: const Text('SELECT ALL'),
),
),
),
);
}

// Action будет содержать логику, которую вы хотите выполнить при срабатывании клавиатурного сокращения
class SelectAllAction extends Action<SelectAllIntent> {
@override
void invoke(covariant SelectAllIntent intent) {
// делайте то, что вам нужно
}
}



В этом примере мы создаём клавиатурное сокращение Ctrl+A для вызова действия SelectAllAction. Просто и удобно! 👍

Оцените нашу новую рубрику и напишите, о чём бы вы хотели узнать в следующий раз 🤔

Все подобные советы ищите по хэштегу #FlutterPulseTips

#flutter #dart #flutterpulse #FlutterPulseTips #FlutterTips #MobileDev #KeyboardShortcuts #FlutterDev #CodingTips
👍2
Обзор пакетов на тему "Отладка и логирование" (Debugging & Logging)

Talker Flutter 🚀
Пакет для обработки ошибок и логирования в ваших приложениях. 📝
Логируйте действия вашего приложения, перехватывайте и обрабатывайте исключения и ошибки, отображайте оповещения и делитесь отчетами о логах.
👍 Лайки: 569, 📥 Скачиваний: 240К
Последнее обновление 📅: 5 дней назад
https://pub.dev/packages/talker_flutter

Talker
Продвинутый обработчик ошибок и логгер для приложений на Dart и Flutter.
Логирование действий приложения, ловля и обработка исключений и ошибок, показ оповещений и деление отчетов о логах.
👍 Лайки: 753, 📥 Скачиваний: 319К
Последнее обновление 📅: 5 дней назад
https://pub.dev/packages/talker

Logging
Простой и гибкий инструмент для логирования в ваших приложениях на Dart.
Настраивайте уровень логирования, добавляйте обработчики лог-сообщений и многое другое.
👍 Лайки: 945, 📥 Скачиваний: 7.59М
Последнее обновление 📅: 10 месяцев назад
https://pub.dev/packages/logging

Stack Trace
Пакет для Dart, облегчающий работу со стеками вызовов!
Позволяет парсить, инспектировать и манипулировать стеками вызовов, а также форматировать их в читаемый вид.
👍 Лайки: 330, 📥 Скачиваний: 7.02М
Последнее обновление 📅: 8 месяцев назад
https://pub.dev/packages/stack_trace

Logger 📈
Легкий в использовании и расширяемый логгер, который выводит красивые логи.
👍 Лайки: 3580, 📥 Скачиваний: 2.08М
Последнее обновление 📅: 34 дня назад
https://pub.dev/packages/logger

Leak Tracker
Пакет для обнаружения проблем с памятью в приложениях на Dart и Flutter.
👍 Лайки: 167, 📥 Скачиваний: 4.4М
Последнее обновление 📅: 4 месяца назад
https://pub.dev/packages/leak_tracker

#talker #talkerflutter #logging #stacktrace #logger #leaktracker #flutter #dart #pubdev #flutterpulse #flutterpulsethemedpackages