Flutter AnimatedContainer无法在其他类上工作

问题描述

“动画容器”向右移动以显示导航抽屉,该导航抽屉使用堆栈显示在其下方。

用于更改页面底部导航栏,

第三页 TagsPage被提取为不同的类,导航菜单按钮未执行该类的动画

首页

@override
  Widget build(BuildContext context) {
    return GestureDetector(
      onTap: () {
        if (Constants.isDrawerOpen == true) changeDrawer();

      },child: AnimatedContainer(
        transform:
            Matrix4.translationValues(Constants.xOffset,Constants.yOffset,0)
              ..scale(Constants.scaleFactor),duration: Duration(milliseconds: 250),decoration: Boxdecoration(
          borderRadius: BorderRadius.circular(50),),child: Scaffold(
          body: selectedBarIndex == 2
              ? TagsPage()
              : Column(
                  children: [
                    SizedBox(
                      height: 45,Row(
                      mainAxisAlignment: MainAxisAlignment.spaceBetween,children: [
                        Padding(
                          padding: const EdgeInsets.only(left: 9),child: IconButton(
                            icon: Icon(Constants.isDrawerOpen
                                ? Icons.clear
                                : Icons.menu),iconSize: 30,onpressed: () {
                              changeDrawer();
                            },],);
  }

  void changeDrawer() {
    Constants.isDrawerOpen?
    setState(() {
      Constants.xOffset = 0;
      Constants.yOffset = 0;
      Constants.scaleFactor = 1;
      Constants.isDrawerOpen = false;
    }):
    setState(() {
      Constants.xOffset = 180;
      Constants.yOffset = 90;
      Constants.scaleFactor = 0.8;
      Constants.isDrawerOpen = true;
    });
    print('chala toh hai');
  }

从TagPage

import 'package:document_organizer/utils/consts.dart';
import 'package:Flutter/material.dart';

class TagsPage extends StatefulWidget {
  @override
  _TagsPageState createState() => _TagsPageState();
}
class _TagsPageState extends State<TagsPage> {
  @override
  Widget build(BuildContext context) {
    return Container(
        color: Colors.yellow[50],child: Stack(
          children: [
            Container(
              width: 500,height: 120,margin: EdgeInsets.only(bottom: 18),decoration: Boxdecoration(
                borderRadius: BorderRadius.only(
                    bottomLeft: Radius.circular(36),bottomright: Radius.circular(36)),color: Colors.yellow[100],Column(
              children: [
                SizedBox(
                  height: 45,Row(
                  mainAxisAlignment: MainAxisAlignment.spaceBetween,children: [
                    Padding(
                      padding: const EdgeInsets.only(left: 9),child: Constants.isDrawerOpen
                          ? IconButton(
                        icon: Icon(Icons.clear),onpressed: () {
                          setState(() {
                            Constants.xOffset = 0;
                            Constants.yOffset = 0;
                            Constants.scaleFactor = 1;
                            Constants.isDrawerOpen = false;
                          });
                        },)
                          : IconButton(
                        icon: Icon(Icons.menu),onpressed: () {
                          setState(() {
                            Constants.xOffset = 180;
                            Constants.yOffset = 90;
                            Constants.scaleFactor = 0.8;
                            Constants.isDrawerOpen = true;
                          });
                        },);
  }
}

常量类

class Constants {
  static double xOffset = 0;
  static double yOffset = 0;
  static double scaleFactor = 1;

  static bool isDrawerOpen = false;
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...