Контроллер flip_card переворачивает не ту карту, когда завернут в carousel_slider

У меня есть несколько карточек (которые можно переворачивать, для этого я использую flip_card ). Теперь я хочу показать эти карточки с помощью carousel_slider.

Но если я использую FlipCardControllerчтобы перевернуть карты (когда он завернут в carousel_slider), он переворачивает не ту карту (в моем случае, следующую карту). Этот контроллер управляется нажатием кнопки текущей карты.

Я использую этот код:

      child: CarouselSlider(
  items: [0, 1, 2].map((i) {
    return Builder(
      builder: (BuildContext context) {
        return FlipCard(
          controller: controller,  //FlipCardController
          fill: Fill.fillBack,
          flipOnTouch: false,
          direction: FlipDirection.HORIZONTAL,
          front: ExperienceCardFront(  //this is my custom widget
            image: data[i][4],
            title: data[i][0]),
          back: ExperienceCardBack(),  //another custom widget
       );
     });
   }).toList(),
   options: CarouselOptions(),
),

Это передний виджет карты, на которой есть кнопка с контроллером:

      //import statements

class ExperienceCardFront extends StatefulWidget {
  //contents
}

class _ExperienceCardFrontState extends State<ExperienceCardFront> {
  @override
  Widget build(BuildContext context) {
    return Container(
      child: Column(
        children: [
          //other widgets
          Padding(
            padding: const EdgeInsets.symmetric(horizontal: 8.0),
            child: MaterialButton(
              child: text('Read More', 15, Colors.blueGrey),
              onPressed: () {
                controller.toggleCard();  //here is the controller
              },
            ),
          ),
        ],
      ),
    );
  }
}

Прикрепляю запись того же экрана:

Также я узнал, что если контроллер удален и flipOnTouchустановлено значение true, нужную карту можно перевернуть на ощупь. У меня такая проблема возникает только с контроллером.

0 ответов

Другие вопросы по тегам