Во-первых, я прошу прощения за мой английский.
И во-вторых, у меня проблемы с управлением значениями для animateTransition.Как вы можете видеть, у меня есть виджет карты с позицией в правой части экрана и MaterialButton в центре экрана.
РасположенЗначения виджета задаются классом 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, и я не могу инициализировать переменные запроса, чтобы получить размер устройства и перевести в исходное состояние.Любой совет для решения этого типа проблемы.
Спасибо за внимание