Сдвиньте виджет влево

#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