【问题标题】:flutter angle value of Transform.rotate dont change and dont update stateTransform.rotate 的颤振角度值不改变也不更新状态
【发布时间】:2020-08-05 20:52:51
【问题描述】:

这是我的代码

class TitleGreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
double width = MediaQuery.of(context).size.width;
double height = MediaQuery.of(context).size.height;
print('title green buile');
return  Positioned(
    key:  UniqueKey(),
    top: 0.0,
    child: GestureDetector(
        onTap: () {
          Provider.of<MoveDetailsDesVisibility>(context)
              .setViisibility(1, context);
        },
        child: AnimatedContainer(
          key:  UniqueKey(),
          duration: Duration(seconds: 0),
          padding: EdgeInsets.only(
              top: Provider.of<MoveDetailsDesVisibility>(context)
                  .des2visibility
                  ? (1 / 4) * height + 225
                  : (1 / 4) * height + 115),

          height: Provider.of<MoveDetailsDesVisibility>(context)
              .des2visibility
              ? (1 / 4) * height + 260
              : (1 / 4) * height + 150,
          //150
          width: (3 / 4) * width - 11.5,
          decoration: BoxDecoration(
              color: Color(0xFF24DC25),
              borderRadius:
              BorderRadius.only(bottomLeft: Radius.circular(30))),
          child: Column(
            children: <Widget>[
              Row(
                children: <Widget>[
                  SizedBox(
                    width: 5,
                  ),

                  Transform.rotate(
                      key:  UniqueKey(),
                      angle: Provider.of<MoveDetailsDesVisibility>(context)
                          .des2visibility?-80:0,
                      child:
                      Image.asset(
                        'assets/icons/faNote.png',
                        fit: BoxFit.cover,
                        width: 20,
                        height: 20,
                      )),
                  SizedBox(
                    width: 9,
                  ),
                  Text(
                    'توضیحات مربی',
                    style: TextStyle(
                        color: Colors.white,
                        fontSize: 14,
                        fontWeight: FontWeight.bold),
                  )
                ],
              ),

            ],
          ),
        )));
   }
}

在这段代码中,当我更新提供者并更改提供者的值时,调用了这个小部件类并调用了构建方法,但是这个检查“des2visibility”的值是否为假或真的编码不要调用并且图像小部件在整个过程中不转换在不正确的地方构建的小部件我与消费者一起测试并获取整个小部件键值但不起作用

【问题讨论】:

  • 你能添加你的提供者类吗?
  • 在哪里以及如何?请解释一下
  • 我的意思是在此处添加 MoveDetailsDesVisibility 类。
  • “当我更新提供者时”是什么意思?您的意思是当您调用“setViisibility”时?另外,你确定你没有忘记调用 notifyListeners() 吗?
  • pskink 说什么我不想要动画。

标签: flutter provider state-management


【解决方案1】:

这是一个无状态小部件,你应该使用有状态小部件 Titlegreen

【讨论】:

  • ssdn 请注意我使用提供者状态管理
  • 添加这个构造函数... const TitleGreen ({Key key}) : super(key: key); ...进入 TitleGreen 类
  • 你的答案不起作用,我无法通过提供者解决这个问题,但我用 setState 方法解决了谢谢大家
猜你喜欢
  • 2021-05-23
  • 2020-08-04
  • 1970-01-01
  • 1970-01-01
  • 2021-04-19
  • 2020-03-14
  • 2021-06-18
  • 2021-11-19
  • 2021-12-04
相关资源
最近更新 更多