Flutter底部导航插件simple_bottom_nav的使用

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

Flutter底部导航插件simple_bottom_nav的使用

简介

一个简单、多彩且流畅的底部导航栏构建工具。

维护者:Tanmoy Karmakar

规格

这个库允许你轻松实现底部导航栏,并具有许多可自定义的字段,以使其成为你的专属。

它完全用Dart编写。❤️

安装

在你的pubspec.yaml文件中添加以下依赖:

dependencies:
  simple_bottom_nav: ^0.0.2

示例代码

下面是一个简单的示例代码,展示了如何使用simple_bottom_nav插件:

import 'package:flutter/material.dart';
import 'package:simple_bottom_nav/simple_bottom_nav.dart';

void main() => runApp(const MyApp());

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

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Material App',
      home: Scaffold(
        body: SimpleBottomNavigator(
          navWidgetList: [
            BottomNavModel(
              title: "首页",
              index: 0,
              activeColor: const Color(0xffFB65B2),
              iconList: [
                "assets/Component 3.png",
                "assets/Home.png",
              ],
              context: context,
            ),
            BottomNavModel(
              title: "菜谱",
              index: 1,
              activeColor: const Color(0xff2EB2FF),
              iconList: [
                "assets/foodtrayFilled.png",
                "assets/foodtray.png",
              ],
              context: context,
            ),
          ],
          pageList: const [
            Scaffold(
              body: Center(
                child: Text("首页"),
              ),
            ),
            Scaffold(
              body: Center(
                child: Text("菜谱"),
              ),
            ),
          ],
        ),
      ),
    );
  }
}

简单使用

要集成简单的底部导航栏,只需使用以下代码即可:

body: SimpleBottomNavigator(
  navWidgetList: [
    // 导航项列表
  ],
  pageList: [
    // 对应页面列表
  ],
)

自定义使用

有许多选项可以提供更多控制:

属性说明

属性名 描述
navWidgetList 这个属性接收一个BottomNavModel对象列表,并将其转换为底部导航栏组件
pageList 这个属性接收一个包含小部件(最好是Scaffold)的列表,用于展示相应的屏幕

示例代码解释

// 引入必要的包
import 'package:flutter/material.dart';
import 'package:simple_bottom_nav/simple_bottom_nav.dart';

// 主函数
void main() => runApp(const MyApp());

// 应用程序主体
class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Material App',
      home: Scaffold(
        body: SimpleBottomNavigator(
          // 导航项列表
          navWidgetList: [
            BottomNavModel(
              title: "首页",
              index: 0,
              activeColor: const Color(0xffFB65B2),
              iconList: [
                "assets/Component 3.png",
                "assets/Home.png",
              ],
              context: context,
            ),
            BottomNavModel(
              title: "菜谱",
              index: 1,
              activeColor: const Color(0xff2EB2FF),
              iconList: [
                "assets/foodtrayFilled.png",
                "assets/foodtray.png",
              ],
              context: context,
            ),
            BottomNavModel(
              title: "孕妇",
              index: 2,
              activeColor: const Color(0xff35B729),
              iconList: [
                "assets/Group 526.png",
                "assets/Frame 9.png",
              ],
              context: context,
            ),
            BottomNavModel(
              title: "个人资料",
              index: 3,
              activeColor: const Color(0xff707070),
              iconList: [
                "assets/Component 3-3.png",
                "assets/Component 6.png",
              ],
              context: context,
            ),
          ],
          // 对应页面列表
          pageList: const [
            Scaffold(
              backgroundColor: Colors.pink,
              body: Center(
                child: Text("首页"),
              ),
            ),
            Scaffold(
              backgroundColor: Colors.blue,
              body: Center(
                child: Text("菜谱"),
              ),
            ),
            Scaffold(
              backgroundColor: Colors.greenAccent,
              body: Center(
                child: Text("孕妇"),
              ),
            ),
            Scaffold(
              backgroundColor: Colors.grey,
              body: Center(
                child: Text("个人资料"),
              ),
            ),
          ],
        ),
      ),
    );
  }
}

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

1 回复

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


simple_bottom_nav 是一个用于 Flutter 的简单底部导航栏插件。它提供了一个易于使用的 API,帮助开发者快速实现底部导航功能。以下是如何使用 simple_bottom_nav 插件的步骤:

1. 添加依赖

首先,在 pubspec.yaml 文件中添加 simple_bottom_nav 依赖:

dependencies:
  flutter:
    sdk: flutter
  simple_bottom_nav: ^1.0.0  # 请使用最新版本

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

2. 创建底部导航栏

在你的 Flutter 应用中,你可以使用 SimpleBottomNav 组件来创建一个底部导航栏。

以下是一个简单的示例:

import 'package:flutter/material.dart';
import 'package:simple_bottom_nav/simple_bottom_nav.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Simple Bottom Nav Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: HomeScreen(),
    );
  }
}

class HomeScreen extends StatefulWidget {
  @override
  _HomeScreenState createState() => _HomeScreenState();
}

class _HomeScreenState extends State<HomeScreen> {
  int _currentIndex = 0;

  final List<Widget> _pages = [
    Center(child: Text('Home Page')),
    Center(child: Text('Search Page')),
    Center(child: Text('Profile Page')),
  ];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Simple Bottom Nav Example'),
      ),
      body: _pages[_currentIndex],
      bottomNavigationBar: SimpleBottomNav(
        currentIndex: _currentIndex,
        onTap: (index) {
          setState(() {
            _currentIndex = index;
          });
        },
        items: [
          BottomNavItem(icon: Icons.home, title: 'Home'),
          BottomNavItem(icon: Icons.search, title: 'Search'),
          BottomNavItem(icon: Icons.person, title: 'Profile'),
        ],
      ),
    );
  }
}

3. 解释代码

  • SimpleBottomNav 是主要的小部件,用于显示底部导航栏。
  • currentIndex 用于跟踪当前选中的页面索引。
  • onTap 回调函数在用户点击导航栏项时调用,更新 currentIndex 以显示相应的页面。
  • BottomNavItem 用于定义每个导航栏项的图标和标题。

4. 自定义外观

你可以通过传递不同的参数来自定义底部导航栏的外观,例如颜色、大小等。例如:

bottomNavigationBar: SimpleBottomNav(
  currentIndex: _currentIndex,
  onTap: (index) {
    setState(() {
      _currentIndex = index;
    });
  },
  items: [
    BottomNavItem(icon: Icons.home, title: 'Home'),
    BottomNavItem(icon: Icons.search, title: 'Search'),
    BottomNavItem(icon: Icons.person, title: 'Profile'),
  ],
  selectedColor: Colors.blue,
  unselectedColor: Colors.grey,
  backgroundColor: Colors.white,
  iconSize: 24.0,
  fontSize: 14.0,
),
回到顶部