簡體   English   中英

底部導航欄中的顫振路線

[英]Flutter Routes within Bottom Navigation Bar

我正在嘗試實現外部Route文件,以將我的應用程序的所有路由信息都保存在一個文件中。 我現在正在嘗試在BottomNavigationBar中使用所述路由文件。

我一直在觀看無數視頻和閱讀文章,並嘗試了多種不同的實現方式

Routes.dart

import 'package:flutter/material.dart';
import 'package:second_try/Screens/homeScreen.dart';
import 'package:second_try/Screens/agendaScreen.dart';

class RouteGenerator{
  static Route<dynamic> generateRoute(RouteSettings settings){
    final args = settings.arguments;

    switch (settings.name){
      case '/':
        return MaterialPageRoute(builder: (_)=> homeScreen());
      case '/agenda':
        if (args is String) {
          return MaterialPageRoute(builder: (_)=> agendaScreen());
        }
    }
  }}

bottomNavigation小部件

import 'package:flutter/material.dart';
import 'package:second_try/Screens/homeScreen.dart';
import 'package:second_try/Screens/agendaScreen.dart';
import 'package:second_try/routes.dart';

class bottomNavigation extends StatefulWidget {
  @override
  _bottomNavigation createState() => _bottomNavigation();
}

class _bottomNavigation extends State<bottomNavigation> {
  int currentNavItem = 0;

  homeScreen home;
  agendaScreen agenda;
  List<Widget> pages;
  Widget currentPage;

  @override
  void initState(){
    home = homeScreen();
    agenda = agendaScreen();

    pages = [home, agenda];

    currentPage = home;
    super.initState();
  }



  @override
  Widget build(BuildContext context) {
    return BottomNavigationBar(
      type: BottomNavigationBarType.fixed,
      selectedItemColor: Colors.deepPurpleAccent,
      unselectedItemColor: Colors.grey,
      selectedFontSize: 16,
      currentIndex: currentNavItem,
      onTap: (int index) {
        Navigator.of(context).pushNamed('/agenda');
        setState(() {
            currentNavItem = index;
            currentPage = pages[index];
          },
        );
      },

我對抖動非常陌生,並且由於這種實現而迷失了自己。 感謝您的幫助和預先輸入!

你可以試試這個嗎?

Navigator.pushReplacementNamed(context, '/agenda');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM