детектор жестов флаттера не работает, когда он является потомком виджета Transtorm и AnimatedBuilder - PullRequest
0 голосов
/ 11 апреля 2020

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

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

AnimatedBuilder(
          animation: controller,
          builder: (context, widget) {
            return Transform.rotate(
                angle: radians(rotation.value),
                child:
                    Stack(alignment: Alignment.center, children: <Widget>[
                  for (int i = 0; i < categoryList.length; i++)
                    new Transform(
                        transform: Matrix4.identity()
                          ..translate(
                            ((translation.value) *
                                    cos(radians(
                                        i * (360 / categoryList.length)))) +
                                (0),
                            (translation.value) *
                                    sin(radians(
                                        i * (360 / categoryList.length))) +
                                (i * (360 / categoryList.length) == 90
                                    ? 40
                                    : (i * (360 / categoryList.length) ==
                                            270
                                        ? -40
                                        : 0)),
                          ),
                        child: GestureDetector(
                            onTap: () {
                              print('this button not work');
                              setState(() {
                                field = categoryList[i];
                              });
                            },
                            child: Container(
                              width: 120,
                              height: 40,
                              alignment: Alignment.center,
                              padding: EdgeInsets.all(3),
                              decoration: BoxDecoration(
                                  color: field == categoryList[i]
                                      ? Colors.green
                                      : Color(0xffe46b10),
                                  borderRadius: BorderRadius.circular(10)),
                              child: Text(
                                categoryList[i],
                                textAlign: TextAlign.center,
                                style: TextStyle(
                                    color: Colors.white, height: 1.0),
                              ),
                            ))),
                  Transform.rotate(
                      angle: 4590,
                      child: Transform.scale(
                        scale: scale.value - 1,
                        child: FloatingActionButton(
                            heroTag: '1',
                            child: Icon(Icons.done,
                                color: Colors.green, size: 40),
                            onPressed: () async {
                              await controller.reverse();
                              print(field);
                              await setMyField(field);

                              await setMyFieldId(getid(field));

                              Provider.of<AllBooks>(context, listen: false)
                                  .filterBooksBaseOnCategory(context);

                              Navigator.pushReplacement(
                                  context,
                                  PageRouteBuilder(
                                      pageBuilder: (context, an1, an2) =>
                                          BlocProvider(
                                              create:
                                                  (BuildContext context) =>
                                                      HelpBloc(),
                                              child: HomePage(false))));
                            },
                            backgroundColor: Colors.white),
                      )),
                  Transform.scale(
                    scale: scale.value,
                    child: FloatingActionButton(
                        heroTag: '2',
                        backgroundColor: Colors.white,
                        child: Icon(Icons.menu, color: Colors.green),
                        onPressed: _open),
                  ),
                ]));
          })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...