значение угла флаттера Transform.rotate не изменяет и не обновляет состояние - PullRequest
0 голосов
/ 22 апреля 2020

это мой код

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" имеет значение false или true, не вызывать и виджет изображения не преобразуется, в то время как весь созданный виджет где неверен, я проверяю его с потребителем и принимаю все значение ключа виджета, но не работает

1 Ответ

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

Это виджет без состояния, вы должны использовать виджет с состоянием Titlegreen

...