Я сейчас застрял с настройкой индекса здесь. Я пробовал различные способы установить индекс, но значение индекса не может быть изменено. Этот метод происходит из пакета:
https://pub.dev/packages/flutter_tindercard
Поскольку я строю карты, мне, возможно, потребуется go вернуться в индекс, чтобы правильно синхронизировать c с кнопкой возврата, которая возвращает карту. Но индекс строителя просто продолжает добавляться, даже если я выполняю декремент внутри компоновщика. Это код моего сборщика:
Widget _cardBuild() {
return TinderSwapCard(
orientation: AmassOrientation.BOTTOM,
totalNum: articleList.length != null ? articleList.length + backCount : 0,
stackNum: 3,
swipeEdge: 1.0,
animDuration: 50,
maxWidth: MediaQuery.of(context).size.width * 0.9,
maxHeight: 410.1,
minWidth: MediaQuery.of(context).size.width * 0.8,
minHeight: 410,
cardBuilder: (context, index) {
return Card(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10.0),
),
child: Conditional.single(
context: context,
conditionBuilder: (BuildContext context) => pendingBack > 0,
widgetBuilder: (BuildContext context) {
return _generateCards(cardIndex);
},
fallbackBuilder: (BuildContext context) {
return _generateCards(index);
},
),
);
},
cardController: controller = CardController(),
swipeUpdateCallback: (DragUpdateDetails details, Alignment align) {
/// Get swiping card's alignment
if (align.x < 0) {
//Card is LEFT swiping
} else if (align.x > 0) {
//Card is RIGHT swiping
}
},
swipeCompleteCallback: (CardSwipeOrientation orientation, int index) {
if (index == articleList.length) {
setState(() {
isOutOfCards = true;
});
} else {
setState(() {
cardIndex++;
});
}
},
);
}
Пример скриншота приложения: [![Screenshot](https://i.stack.imgur.com/nwOtB.jpg)