問題タブ [cupertinotabbar]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1487 参照

dart - CupertinoTabBar でタブを移動する方法は? マテリアル タブ バーとは異なり、タブを切り替えるためのタブ コントローラーはありません。

私は [ホーム] タブを使用していますが、CupertinoTabBar を使用して 2 番目のタブに移動する必要があります。マテリアルタブバーのようなグローバルキーでシフトするタブコントローラーがありません。オプションを提案していただけますか?

グローバル キーを使用して、タブの currentIndex を変更しようとしました。しかし、運が悪い。オプションが不足しています。

HomeScreen.dart - タブを含む

HomeTab.dart - [SEE MORE TRIPS] ボタンが含まれています。ボタンをクリックすると、2 番目のタブに移動します

0 投票する
0 に答える
917 参照

flutter - Cupertino タブを切り替えるときにナビゲーターをリセットする方法

Flutter でマルチページ アプリをセットアップしようとしています。下部のタブバーには、[その他] ボタンを含む、最もよく使用される 4 つのページが含まれています。詳細ボタンは、他のページへのリンクを含むページを表示します。ページをクリックすると、このページが「その他」ページに置き換わるため、新しいナビゲーション スタックが作成されます。ただし、別のタブに切り替えてから「詳細」タブに戻ると、ナビゲーションの状態が記憶されます。これは、「その他」ページではなく、タブを切り替えたときに残したページが表示されていることを意味します。ユーザーが「その他」タブをクリックするたびに「その他」ページを表示したい。

Navigator の pushReplacement メソッドを使用してみました。そのため、ユーザーが詳細ページをクリックすると、詳細ページのリストに戻ることができません。ただし、タブを切り替えると、more ページが置き換えられるため、表示されなくなりました。

また、タブのコールバック メソッドを調整して、すべてのビューをポップし、ナビゲーターを MoreScreen に戻すことも試みました。ただし、これにより、コンソールにエラーが表示されました: setState() or markNeedsBuild() called during build..

タブ画面:

そして、別のページに移動するためのボタンを保持する MoreScreen:

タブを切り替えるたびにナビゲーションスタックがリセットされることを期待していますが、次を使用して手動で行う必要があります。

Navigator.of(context).popUntil((route) => route.isFirst);

これにより、次のエラー メッセージが表示setState() or markNeedsBuild() called during build.されます。タブに新しいページをプッシュしてからタブを切り替えた後。