前提・実現したいこと
TabBarの現在選択されているタブのインデックスを取得したいです
公式のドキュメントのサンプルコードにFloatingActionButtonを
付け足したサンプルを作成し動作を確認したのですが、特定の手順を踏むと
意図しないインデックスの値が取得される事象が発生しており困っています
TabBarViewの部分をスワイプしてタブを切り替えた際に
DefaultTabController.of(context).index
でインデックスの値を取得すると
現在選択されているタブのインデックスとは異なる値が返却されてしまいます
解決方法が分からなかったので、ご教示頂けますと幸いです
宜しくお願いします
発生している問題・エラーメッセージ
現在選択されているタブのインデックスとは異なる
インデックスの値が取得されてしまうことがある
該当のソースコード
Dart
1import 'package:flutter/material.dart'; 2 3void main() { 4 runApp(MyApp()); 5} 6 7class MyApp extends StatelessWidget { 8 9 Widget build(BuildContext context) { 10 return MaterialApp( 11 home: TabBarDemo(), 12 ); 13 } 14} 15 16class TabBarDemo extends StatelessWidget { 17 18 Widget build(BuildContext context) { 19 return MaterialApp( 20 home: DefaultTabController( 21 length: 3, 22 child: Builder( 23 builder: (context) => Scaffold( 24 appBar: AppBar( 25 bottom: TabBar( 26 tabs: [ 27 Tab(icon: Icon(Icons.directions_car)), 28 Tab(icon: Icon(Icons.directions_transit)), 29 Tab(icon: Icon(Icons.directions_bike)), 30 ], 31 ), 32 ), 33 body: TabBarView( 34 children: [ 35 Icon(Icons.directions_car), 36 Icon(Icons.directions_transit), 37 Icon(Icons.directions_bike), 38 ], 39 ), 40 floatingActionButton: FloatingActionButton( 41 onPressed: () => print(DefaultTabController.of(context).index),// 意図しない値が返却されることがある 42 ), 43 ), 44 ), 45 ), 46 ); 47 } 48} 49
試したこと
こちらとこちらのanswerを試しましたが出力される値は同じでした
補足情報(FW/ツールのバージョンなど)
Flutter 1.22.0 • channel stable • https://github.com/flutter/flutter.git Framework • revision d408d302e2 (9 days ago) • 2020-09-29 11:49:17 -0700 Engine • revision 5babba6c4d Tools • Dart 2.10.0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。