Флаттер: Как вручную установить индекс для застройщика? - PullRequest
0 голосов
/ 25 марта 2020

Я сейчас застрял с настройкой индекса здесь. Я пробовал различные способы установить индекс, но значение индекса не может быть изменено. Этот метод происходит из пакета:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...