Flutter: как управлять переходом со значениями MediaQuery в animatedTransition Widget - PullRequest
0 голосов
/ 27 июня 2019

Во-первых, я прошу прощения за мой английский.

И во-вторых, у меня проблемы с управлением значениями для animateTransition.Как вы можете видеть, у меня есть виджет карты с позицией в правой части экрана и MaterialButton в центре экрана.

enter image description here

РасположенЗначения виджета задаются классом MediaQuery и после сохранения в переменной позиции, но когда я пытаюсь изменить значение позиции и вызвать функцию setSate, метод сборки повторяет и инициализирует переменные, и снова новое значение всегда одинаково из-за этого (ядумаю, что), и для этого никогда не увидим переход.

я покажу код.

class _DashboardState extends State<Dashboard> {
final double blur = 30;
final double offset = 20;
final double top = 25;

@override
Widget build(BuildContext context) {
final size = MediaQuery.of(context).size;
double position = -(size.width) * 0.8;

return WillPopScope(
  onWillPop: () async =>
      SystemChannels.platform.invokeMethod('SystemNavigator.pop'),
  child: MaterialApp(
    home: Scaffold(
      body: SafeArea(
        child: Stack(
          alignment: Alignment.center,
          children: <Widget>[
            Positioned(
              right: position,
              child: AnimatedContainer(
                duration: Duration(milliseconds: 500),
                curve: Curves.decelerate,
                child: Card(
                  elevation: 8,
                  color: Colors.red,
                  shape: RoundedRectangleBorder(
                    borderRadius: BorderRadius.circular(10),
                  ),
                  child: Container(
                    width: size.width * 0.9,
                    height: size.height * 0.8,
                  ),
                ),
              ),
            ),
            Center(
              child: MaterialButton(
                color: Colors.black,
                child: Text("mover"),
                onPressed: () {
                  setState(() {
                    position = 0;
                  });
                },
              ),
            )
          ],
        ),
      ),
    ),
  ),
);

}}

, когда я пытаюсь извлечь переменные, которые яне может, потому что зависит от контекста в mediaQuery, и я не могу инициализировать переменные запроса, чтобы получить размер устройства и перевести в исходное состояние.Любой совет для решения этого типа проблемы.

Спасибо за внимание

...