#flutter
Вопрос:
Я пытаюсь заставить этот виджет карты перемещаться из этого положения полностью вправо, пока он не станет невидимым с помощью анимации.
Как я могу это сделать?
Позже я добавлю еще карты ниже и хочу, чтобы они тоже двигались влево, вверх и вниз, в настоящее время это только для одной карты.
import 'package:flutter/material.dart';
class Swipe extends StatefulWidget {
@override
_SwipeState createState() => _SwipeState();
}
class _SwipeState extends State<Swipe> {
//bool bgColor = true;
@override
Widget build(BuildContext context) {
return Scaffold(
//backgroundColor: bgColor ? Colors.black : Colors.white,
body: SingleChildScrollView(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Container(
padding: EdgeInsets.fromLTRB(40, 30, 40, 0),
height: 140,
width: 400,
child: Card(
child: Center(child: Text("RIGHT")),
color: Colors.green,
),
),
]),
),
);
}
}
Комментарии:
1. Используйте анимированный контейнер с
Align
правом иVisibility
виджетом api.flutter.dev/flutter/widgets/AnimatedContainer-class.html
Ответ №1:
Есть виджет под названием Dismissible
. Пример:
Dismissible(
onDismissed: (direction) {
onWidgetRemove();
},
confirmDismiss: (direction) {
return confirmRemoveWidget();
},
key: ValueKey(someItemId),
child: MyWidget())
Обратите внимание, что key
этого не должно быть null
. confirmDismiss
является необязательным и обычно используется с диалогом для подтверждения действия.
Небольшой совет: Вместо использования SingleChildScrollView
Column
используйте ListView