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

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

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

ultimate_navigation_bar 是一个适用于 Flutter 应用程序的终极底部导航栏插件。它具有高度的自定义性,可以适应各种不同的应用场景。

如何使用

要使用 ultimate_navigation_bar 插件,你需要将其添加到项目的 pubspec.yaml 文件中作为依赖项。

dependencies:
  ultimate_navigation_bar: ^0.1.9

然后,你可以通过设置 ScaffoldbottomNavigationBar 属性来使用该插件。

适应任何使用场景

电子商务

社交

金融

聊天

UltimateNavBar 属性

属性名 描述 类型
backgroundColor AppBar 背景颜色 Color
itemsColor 项目颜色 Color
barHeight AppBar 高度 int
iconsSize 图标大小 double
isFloating 导航栏是否浮动 bool
items 项目列表(必填) List
showIndicator 是否显示当前标签的指示器 boolean
borderRadiusBar 导航栏边框半径(仅当 isFloating 为 true 时生效) BorderRadius
gradientColors 导航栏背景渐变颜色列表(至少需要两种颜色) List<Colors>
gradientType 渐变方向(GradientType.horizontalGradientType.vertical GradientType

NavBarItem 属性

属性名 描述 类型
label 标签(如果为空则不显示) String
icon 图标 IconData
onTap 点击事件处理函数 Functions

示例代码

以下是一个完整的示例代码,展示了如何在 Flutter 应用程序中使用 ultimate_navigation_bar 插件。

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

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

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  [@override](/user/override)
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  int currentIndex = 0;

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        backgroundColor: Colors.white,
        appBar: AppBar(
          title: const Text('Ultimate Navigation Bar'),
        ),
        body: const Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              Text(
                'Ultimate Navigation Bar',
              ),
            ],
          ),
        ),
        bottomNavigationBar: UltimateNavBar(
          currentIndex: currentIndex,
          backgroundColor: Colors.blue.shade500,
          gradientColors: [
            Colors.green.shade400,
            Colors.green.shade700,
            Colors.green.shade900,
          ],
          gradientType: GradientType.vertical,
          itemsColor: Colors.white,
          isFloating: false,
          barHeight: 100,
          iconsSize: 30,
          borderRadiusBar: BorderRadius.circular(80),
          showIndicator: true,
          items: [
            NavBarItem(
                icon: Icons.home,
                label: "Home",
                onTap: () {
                  print('Home tapped');
                }),
            NavBarItem(
                icon: Icons.person,
                label: "Profile",
                onTap: () {
                  print('Profile tapped');
                }),
            NavBarItem(
                icon: Icons.person,
                label: "Profile",
                onTap: () {
                  print('Profile tapped');
                }),
          ],
        ),
      ),
    );
  }
}

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

1 回复

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


当然,以下是一个使用 ultimate_navigation_bar 插件创建 Flutter 底部导航栏的示例代码。这个插件提供了高度可定制的底部导航栏。

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

dependencies:
  flutter:
    sdk: flutter
  ultimate_navigation_bar: ^2.0.0  # 请检查最新版本号

然后运行 flutter pub get 来获取依赖。

接下来,你可以在你的 Flutter 应用中使用这个插件。以下是一个完整的示例:

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

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

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

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int _selectedIndex = 0;

  static List<Widget> _widgetOptions = <Widget>[
    Text('Home'),
    Text('Search'),
    Text('Profile'),
    Text('Settings'),
  ];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Ultimate Navigation Bar Example'),
      ),
      body: Center(
        child: _widgetOptions.elementAt(_selectedIndex),
      ),
      bottomNavigationBar: UltimateNavigationBar(
        currentIndex: _selectedIndex,
        onTabSelected: (index) {
          setState(() {
            _selectedIndex = index;
          });
        },
        backgroundColor: Colors.white,
        activeColor: Colors.blue,
        inactiveColor: Colors.grey,
        borderRadius: BorderRadius.circular(20),
        items: [
          UltimateNavigationBarItem(
            icon: Icon(Icons.home),
            title: Text('Home'),
          ),
          UltimateNavigationBarItem(
            icon: Icon(Icons.search),
            title: Text('Search'),
          ),
          UltimateNavigationBarItem(
            icon: Icon(Icons.person),
            title: Text('Profile'),
          ),
          UltimateNavigationBarItem(
            icon: Icon(Icons.settings),
            title: Text('Settings'),
          ),
        ],
      ),
    );
  }
}

代码解释

  1. 依赖导入:在 pubspec.yaml 文件中添加 ultimate_navigation_bar 依赖。
  2. 主应用MyApp 是一个简单的 MaterialApp,设置了主题和主页面。
  3. 主页面MyHomePage 是一个 StatefulWidget,用于管理导航栏的选中状态。
  4. 导航栏项:在 _MyHomePageStatebuild 方法中,使用 UltimateNavigationBar 创建底部导航栏。
    • currentIndex:当前选中的索引。
    • onTabSelected:点击导航栏项时的回调函数,更新当前选中的索引。
    • backgroundColoractiveColorinactiveColor:设置导航栏的背景色、激活和未激活项的颜色。
    • borderRadius:设置导航栏的圆角半径。
    • items:导航栏项列表,每个项包含图标和标题。

这个示例展示了如何使用 ultimate_navigation_bar 创建一个简单的底部导航栏,并根据用户的选择更新页面内容。你可以根据需要进一步自定义导航栏的样式和功能。

回到顶部