Получить текущую вкладку DefaultTabController - PullRequest
0 голосов
/ 25 сентября 2018

В onPressed для моего fab я хочу узнать индекс вкладки, которая в данный момент выбрана в моем DefaultTabController.Как мне это сделать?

  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      title: 'pari',
      debugShowCheckedModeBanner: false,
      theme: widget._themeData,
      home: DefaultTabController(
        length: widget._tabs.length,
        child: Scaffold(
          appBar: AppBar(
            title: Text('pari'),
            bottom: TabBar(
              isScrollable: true,
              tabs: widget._tabs,
            ),
          ),
          body: _buildBody(),
          floatingActionButton: FloatingActionButton(
              onPressed: addWagerTap,
          ),
        )
      ),
    );
  }

Ответы [ 2 ]

0 голосов
/ 07 августа 2019

Вы также можете получить индекс вкладки, используя свойство onTap в DefaultTabController.

Widget build(BuildContext context) {
  return new MaterialApp(
    title: 'pari',
    debugShowCheckedModeBanner: false,
    theme: widget._themeData,
    home: DefaultTabController(
      length: widget._tabs.length,
      child: Scaffold(
        appBar: AppBar(
          title: Text('pari'),
          bottom: TabBar(
            isScrollable: true,
            onTap: (int index) {
               print('index is $index');
             }
            tabs: widget._tabs,
          ),
        ),
        body: _buildBody(),
        floatingActionButton: FloatingActionButton(
            onPressed: addWagerTap,
        ),
      )
    ),
  );
}



0 голосов
/ 25 сентября 2018

Если вы обернетесь Scaffold внутри Builder, вы сможете получить доступ к DefaultTabController в пределах context.Затем вы можете получить индекс вкладки с помощью DefaultTabController.of(context).index.

  Widget build(BuildContext context) {
    return new MaterialApp(
      title: 'pari',
      debugShowCheckedModeBanner: false,
      theme: widget._themeData,
      home: DefaultTabController(
        length: 4,
        child: Builder(builder: (BuildContext context) {
          return Scaffold(
            appBar: AppBar(
              title: Text('pari'),
              bottom: TabBar(
                  isScrollable: true,
                  tabs: [Text('0'), Text('1'), Text('2'), Text('3')]),
            ),
            body: _buildBody(),
            floatingActionButton: FloatingActionButton(
              onPressed: () {
                print(
                    'Current Index: ${DefaultTabController.of(context).index}');
              },
            ),
          );
        }),
      ),
    );
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...