Как передать данные из одного класса в другой класс во флаттере, используя PageRouteBuilder - PullRequest
1 голос
/ 27 апреля 2020

Я хочу передать данные со страницы 1 на страницу 2 с помощью PageRouteBuilder (для анимации), проблема в том, как их передать. Я не жертвую своей анимацией, используя MaterialPageRoute ().

/// My button in page 1
Listview.builder(
...
...
...
 onTap: () {
    Navigator.of(context).push(_createRouteSelectType(12)); //data i want to pass
 },
),

/// My PageRouteBuilder

Route _createRouteSelectType(buCode) {
  return PageRouteBuilder(
    pageBuilder: (context, animation, secondaryAnimation) => page2(buCode),
    transitionsBuilder: (context, animation, secondaryAnimation, child) {
      var begin = Offset(0.0, 1.0);
      var end = Offset.zero;
      var curve = Curves.decelerate;
      var tween = Tween(begin: begin, end: end).chain(CurveTween(curve: curve));
      return SlideTransition(
        position: animation.drive(tween),
        child: child,
      );
    },
  );
}

/// My page 2 class / receiver
import 'package:flutter/material.dart';
class page2extends StatefulWidget {
  final int buCode;

  page2({Key key, @required this.buCode }) : super(key: key);
  @override
  _LoadT createState() => _LoadT();
}

1 Ответ

0 голосов
/ 27 апреля 2020

Дайте этому пакету снимок: auto_route , это:

  1. Позволяет вам указать анимацию вашего маршрута (и уже есть несколько готовых анимаций)
  2. Принимает позаботьтесь о создании класса для параметров, которые принимает ваша страница, чтобы решить вашу проблему в вопросе
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...