Передавать и редактировать переменные между вкладками в Flutter - PullRequest
0 голосов
/ 23 апреля 2020

Я делаю калькулятор для карточной игры, и мне нужно получить сумму переменных на всех вкладках, чтобы получить общий балл , но здесь на вкладках счет повторно инициализируется на каждой вкладке. Есть ли способ передать переменные между вкладками и все еще в состоянии их редактировать?

это фрагмент кода вкладок

    class TrexTabs extends StatefulWidget {
  TrexTabs(this.value1, this.value2, this.value3, this.value4, this.boolValue);
  final value1;
  final value2;
  final value3;
  final value4;
  final boolValue;
  int firstTotal ;
  int secondTotal ;
  int thirdTotal ;
  int fourthTotal ;
@override
  _TrexTabsState createState() => _TrexTabsState();
}

class _TrexTabsState extends State<TrexTabs> {

  @override
  Widget build(BuildContext context) {
widget.firstTotal = widget.firstQueens + widget.firstKing + widget.firstTrex + widget.firstCollections + widget.firstDiamonds;
    widget.secondTotal = widget.secondQueens + widget.secondKing + widget.secondTrex + widget.secondCollections + widget.secondDiamonds;
    widget.thirdTotal = widget.thirdQueens + widget.thirdKing + widget.thirdTrex + widget.thirdCollections + widget.thirdDiamonds;
    widget.fourthTotal = widget.fourthQueens + widget.fourthKing + widget.fourthTrex + widget.fourthCollections + widget.fourthDiamonds;

Это фрагмент для объявления вкладок:

              TabBar(
                controller: tabController,
                indicatorColor: kSecondaryLight,
                labelColor: Colors.black,
                indicatorSize: TabBarIndicatorSize.tab,

                unselectedLabelColor: Colors.grey.withOpacity(0.6),
                isScrollable: false,
                tabs: <Widget>[
                  Tab(
                    child: Container(
                      child: Center(
                        child: Text(
                          //Triple quotes to get the new line exactly as written
                          '''1st Kingdom 
                           المملكة الأولى''',
                          textAlign: TextAlign.center,
                          style: TextStyle(
                            //line height
                            height: 0.55,
                            fontSize: 11,
                              fontWeight: FontWeight.bold
                          ),
                        ),
                      ),
                    ),
                  ),




               Container(
                height: 500,
                child: TabBarView(
                  physics: NeverScrollableScrollPhysics(),
                  controller: tabController,
                  children: <Widget>[
                    new TrexTabs(widget.value1,widget.value2,widget.value3,widget.value4,widget.boolValue),
                    new TrexTabs(widget.value1,widget.value2,widget.value3,widget.value4,widget.boolValue),
                    new TrexTabs(widget.value1,widget.value2,widget.value3,widget.value4,widget.boolValue),
                    new TrexTabs(widget.value1,widget.value2,widget.value3,widget.value4,widget.boolValue),
                  ],
                ),
              ),
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...