Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
685 of 1024 menu
◀ ▶

Перечисление DismissDirection

Перечисление DismissDirection передают в параметр direction виджета Dismissible. Можно разрешить одну ось, одну сторону или комбинацию через составные значения.

Синтаксис

DismissDirection.endToStart

Значения

Значение Описание
up Смахивание вверх.
down Смахивание вниз.
startToEnd Смахивание от начала к концу строки письма, обычно слева направо.
endToStart Смахивание от конца к началу строки письма, обычно справа налево.
horizontal Оба горизонтальных направления: startToEnd и endToStart.
vertical Оба вертикальных направления: up и down.
none Смахивание отключено.

Пример

Давайте разрешим смахивание только endToStart:

import 'package:flutter/material.dart'; class OneWaySwipe extends StatefulWidget { const OneWaySwipe({super.key}); @override State<OneWaySwipe> createState() => _OneWaySwipeState(); } class _OneWaySwipeState extends State<OneWaySwipe> { var items = ['abcde']; @override Widget build(BuildContext context) { return ListView( children: items.map((item) { return Dismissible( key: ValueKey(item), direction: DismissDirection.endToStart, onDismissed: (_) { setState(() { items.remove(item); }); }, background: Container(color: Colors.orange), child: ListTile(title: Text(item)), ); }).toList(), ); } } void main() { runApp( MaterialApp( home: Scaffold( body: OneWaySwipe(), ), ), ); }

На экране пункт исчезнет только при смахивании справа налево; в другую сторону жест не сработает.

Смотрите также

  • виджет Dismissible,
    которому передают direction
  • виджет Draggable,
    который тащит виджет, а не смахивает
  • виджет GestureDetector,
    который ловит pan без удаления
  • перечисление HitTestBehavior,
    которое настраивает hit test для жестов
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить