Flutter底部导航栏插件getxbottombar的使用

发布于 1周前 作者 yibo5220 来自 Flutter

Flutter底部导航栏插件getxbottombar的使用

GetXBottomBar

用于在底部导航栏中使用GetX导航并绑定(此插件仅适用于使用GetX)。

特性

我们可以从底部导航栏导航到不同的页面,并获得Get.toNamed()的所有好处。

开始使用

将最新版本的此包添加到你的pubspec.yaml文件中,并开始使用(建议与get_cli一起使用以获得更好的体验)。

使用方法

在项目中添加GetXBottomBarView。确保不要传递相同的页面路由,例如,不要在路由列表中传递Routes.Home

我们需要一个getpages列表:

GetMaterialApp(
  debugShowCheckedModeBanner: false,
  title: "Application",
  initialRoute: AppPages.INITIAL, // 我们可以在这里描述路由(请查看GetCli)
  getPages: AppPages.routes, /// 从此处获取该列表
);

我们只需要将这些路由和AppPages.routes列表传递给GetXBottomBarView

class Home extends StatelessWidget {
  const Home({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return GetxBottomBarView(
      appBar: AppBar(
        title: Text('GetxBottomBar'),
        centerTitle: true,
      ),
      getPages: AppPages.routes,
      routes: [
        Routes.DASHBOARD,
        Routes.CART,
        Routes.PROFILE,
      ],
      defaultTransition: Transition.noTransition,
      backgroundColor: Colors.grey.shade100,
      bottomBar: [
        GetBottomBarItem(
            icon: Icon(Icons.dashboard),
            title: Text('仪表盘'),
            activeColor: Colors.red),
        GetBottomBarItem(
            icon: Icon(Icons.shopping_cart_outlined),
            title: Text('购物车'),
            activeColor: Colors.green),
        GetBottomBarItem(
            icon: Icon(Icons.person),
            title: Text('用户'),
            activeColor: Colors.blue)
      ],
    );
  }
}

或者,如果你想直接向用户显示首页,可以将其添加到GetMaterialPage中:

void main() {
  runApp(
    GetMaterialApp(
      debugShowCheckedModeBanner: false,
      title: "Application",
      getPages: AppPages.routes,
      home: GetxBottomBarView(
        getPages: AppPages.routes,
        routes: [Routes.DASHBOARD, Routes.PROFILE, Routes.USER],
        defaultTransition: Transition.noTransition,
        bottomBar: [
          GetBottomBarItem(
              icon: Icon(Icons.dashboard),
              title: Text('数据'),
              activeColor: Colors.red),
          GetBottomBarItem(
              icon: Icon(Icons.person),
              title: Text('数据'),
              activeColor: Colors.red),
          GetBottomBarItem(
              icon: Icon(Icons.person_add),
              title: Text('数据'),
              activeColor: Colors.red)
        ],
      ),
    ),
  );
}

更多关于Flutter底部导航栏插件getxbottombar的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter底部导航栏插件getxbottombar的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter中,getx_bottom_bar 是一个流行的第三方库,用于实现底部导航栏功能,并结合 GetX 状态管理。下面是一个如何使用 getx_bottom_bar 的示例代码案例。

首先,确保你的 pubspec.yaml 文件中添加了 getx_bottom_barget 依赖:

dependencies:
  flutter:
    sdk: flutter
  get: ^4.6.1  # 确保版本是最新的,具体版本号可以查阅pub.dev
  getx_bottom_bar: ^1.0.0  # 确保版本是最新的,具体版本号可以查阅pub.dev

然后运行 flutter pub get 来安装这些依赖。

接下来是主要的 Flutter 应用代码:

import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:getx_bottom_bar/getx_bottom_bar.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return GetMaterialApp(
      title: 'Flutter GetX Bottom Bar Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: HomePage(),
      getPages: [
        GetPage(
          name: '/home',
          page: () => HomeScreen(),
        ),
        GetPage(
          name: '/search',
          page: () => SearchScreen(),
        ),
        GetPage(
          name: '/profile',
          page: () => ProfileScreen(),
        ),
      ],
    );
  }
}

class HomePage extends StatelessWidget {
  final int currentPage = 0;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: IndexedStack(
        index: currentPage,
        children: [
          HomeScreen(),
          SearchScreen(),
          ProfileScreen(),
        ],
      ),
      bottomNavigationBar: GetXBottomBar(
        items: [
          GetXBottomBarItem(
            icon: Icons.home,
            title: 'Home',
            routeName: '/home',
          ),
          GetXBottomBarItem(
            icon: Icons.search,
            title: 'Search',
            routeName: '/search',
          ),
          GetXBottomBarItem(
            icon: Icons.person,
            title: 'Profile',
            routeName: '/profile',
          ),
        ],
        onTap: (index) {
          // 这里可以添加一些额外的点击事件处理逻辑
        },
        currentIndex: currentPage.obs, // 使用GetX的观察对象
      ),
    );
  }
}

class HomeScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Center(
      child: Text('Home Screen'),
    );
  }
}

class SearchScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Center(
      child: Text('Search Screen'),
    );
  }
}

class ProfileScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Center(
      child: Text('Profile Screen'),
    );
  }
}

在这个示例中,我们做了以下事情:

  1. 依赖管理:在 pubspec.yaml 中添加了 getgetx_bottom_bar 依赖。
  2. 主应用入口:在 MyApp 中使用了 GetMaterialApp,并定义了几个页面路由。
  3. 主页:在 HomePage 中使用了 ScaffoldIndexedStack 来管理不同页面的显示,同时使用 GetXBottomBar 来创建底部导航栏。
  4. 底部导航栏项:定义了三个底部导航栏项,每个项都有一个图标、标题和对应的路由名称。
  5. 页面内容:创建了三个简单的页面 HomeScreenSearchScreenProfileScreen,分别显示不同的文本。

这样,你就可以使用 getx_bottom_bar 和 GetX 状态管理来实现底部导航栏功能了。注意,GetXBottomBarcurrentIndex 属性使用了 GetX 的观察对象 .obs,这使得当底部导航栏项被点击时,当前页面会自动更新。

回到顶部