Перечисление 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 для жестов