質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Flutter

Flutterは、iOSとAndroidのアプリを同じコードで開発するためのフレームワークです。オープンソースで開発言語はDart。双方のプラットフォームにおける高度な実行パフォーマンスと開発効率を提供することを目的としています。

Dart

Dartは、Googleによって開発されたJavaScriptの代替となることを目的に作られた、ウェブ向けのプログラミング言語である。

Q&A

1回答

3537閲覧

TabBarの現在選択されているタブのインデックスを取得したい

pftyuk

総合スコア52

Flutter

Flutterは、iOSとAndroidのアプリを同じコードで開発するためのフレームワークです。オープンソースで開発言語はDart。双方のプラットフォームにおける高度な実行パフォーマンスと開発効率を提供することを目的としています。

Dart

Dartは、Googleによって開発されたJavaScriptの代替となることを目的に作られた、ウェブ向けのプログラミング言語である。

0グッド

0クリップ

投稿2020/10/08 06:54

編集2020/10/16 05:42

前提・実現したいこと

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ちゃんとタブのインデックスが返されていますよ。
ただ、1番目のタブが→0、2番目のタブが→1、3番目のタブが→2、というように、
選択されているタブ-1が返されているだけです。

投稿2021/04/17 23:04

children

総合スコア89

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問