Контроллер 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, нужную карту можно перевернуть на ощупь. У меня такая проблема возникает только с контроллером.