Flutter底部滚动导航插件rolling_bottom_bar的使用

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

Flutter底部滚动导航插件rolling_bottom_bar的使用

rolling_bottom_bar 是一个基于 Kabo演示 开发的Flutter插件,它展示了一个带有动态小球指示器的底部导航栏。以下是该插件的详细介绍和使用方法。

新功能 💥

  • 通过 flat 属性设置为 false 来避免底部导航栏阴影。
  • 通过 RollingBottomBarItem 小部件的 color 属性为每个项目设置激活颜色。

示例效果

Demo

安装

在你的 pubspec.yaml 文件中添加 rolling_bottom_bar

dependencies:
  flutter:
    sdk: flutter
  rolling_bottom_bar: ^版本号

请确保替换 ^版本号 为你需要的具体版本号。

使用方法

要使用这个包,只需将其导入到你的文件中,并构建你的底部导航栏和 PageView 即可。

示例代码

以下是一个完整的示例demo:

import 'package:flutter/material.dart';
import 'package:rolling_bottom_bar/rolling_bottom_bar.dart';
import 'package:rolling_bottom_bar/rolling_bottom_bar_item.dart';

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

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

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key}) : super(key: key);

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  final _controller = PageController();

  @override
  void dispose() {
    _controller.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Rolling Bottom Bar'),
      ),
      body: PageView(
        controller: _controller,
        children: <Widget>[
          ColoredBox(color: Colors.blueGrey.shade100),
          ColoredBox(color: Colors.redAccent),
          ColoredBox(color: Colors.greenAccent),
          ColoredBox(color: Colors.yellowAccent),
        ],
      ),
      extendBody: true,
      bottomNavigationBar: RollingBottomBar(
        controller: _controller,
        flat: true,
        useActiveColorByDefault: false,
        items: [
          RollingBottomBarItem(Icons.home, label: 'Page 1', activeColor: Colors.redAccent),
          RollingBottomBarItem(Icons.star, label: 'Page 2', activeColor: Colors.blueAccent),
          RollingBottomBarItem(Icons.person, label: 'Page 3', activeColor: Colors.yellowAccent),
          RollingBottomBarItem(Icons.access_alarm, label: 'Page 4', activeColor: Colors.orangeAccent),
        ],
        enableIconRotation: true,
        onTap: (index) {
          _controller.animateToPage(
            index,
            duration: const Duration(milliseconds: 400),
            curve: Curves.easeOut,
          );
        },
      ),
    );
  }
}

参数说明

RollingBottomBarItem 参数

名称 描述 是否必须 默认值
iconData 图标数据 -
label 标签文本 -
activeColor 激活状态下的图标颜色 Colors.green

RollingBottomBar 参数

名称 描述 是否必须 默认值
controller PageView控制器 -
items 包含 RollingBottomBarItem 的列表 -
onTap 点击事件回调 -
color 背景颜色 Colors.white
itemColor 非激活状态下的图标颜色 Colors.grey[700]
activeItemColor 激活状态下的图标颜色 Colors.green
enableIconRotation 是否启用图标旋转效果 false
flat 是否移除底部导航栏阴影 false
useActiveColorByDefault 是否默认使用激活颜色 true

以上就是 rolling_bottom_bar 插件的基本介绍与使用方法。希望对您有所帮助!


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

1 回复

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


当然,以下是如何在Flutter中使用rolling_bottom_bar插件来实现底部滚动导航的一个示例代码。这个插件允许你创建一个具有滚动动画效果的底部导航栏。

首先,确保你已经在pubspec.yaml文件中添加了rolling_bottom_bar依赖:

dependencies:
  flutter:
    sdk: flutter
  rolling_bottom_bar: ^x.y.z  # 请替换为最新版本号

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

接下来,你可以按照以下步骤在你的Flutter应用中实现底部滚动导航:

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

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

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

class RollingBottomBarDemo extends StatefulWidget {
  @override
  _RollingBottomBarDemoState createState() => _RollingBottomBarDemoState();
}

class _RollingBottomBarDemoState extends State<RollingBottomBarDemo> {
  int _currentIndex = 0;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: IndexedStack(
        index: _currentIndex,
        children: [
          Center(child: Text('Home Page')),
          Center(child: Text('Search Page')),
          Center(child: Text('Profile Page')),
        ],
      ),
      bottomNavigationBar: RollingBottomBar(
        children: [
          RollingBottomBarItem(
            icon: Icons.home,
            title: Text('Home'),
          ),
          RollingBottomBarItem(
            icon: Icons.search,
            title: Text('Search'),
          ),
          RollingBottomBarItem(
            icon: Icons.person,
            title: Text('Profile'),
          ),
        ],
        currentIndex: _currentIndex,
        onItemClick: (index) {
          setState(() {
            _currentIndex = index;
          });
        },
        backgroundColor: Colors.white,
        itemColor: Colors.blue,
        inactiveItemColor: Colors.grey,
        itemSize: 30,
      ),
    );
  }
}

代码解释

  1. 依赖引入:确保在pubspec.yaml中添加了rolling_bottom_bar依赖,并运行flutter pub get

  2. 应用入口:在main.dart中定义了一个MyApp无状态组件作为应用的入口。

  3. 主页面RollingBottomBarDemo是一个有状态组件,用于管理底部导航的状态。

  4. 导航栏RollingBottomBar用于创建底部滚动导航栏。

    • children:定义了导航项,每个项包含图标和标题。
    • currentIndex:当前选中的导航项索引。
    • onItemClick:导航项点击时的回调函数,用于更新当前选中的索引。
    • backgroundColoritemColorinactiveItemColoritemSize:用于自定义导航栏的外观。
  5. 页面内容:使用IndexedStack根据当前选中的索引显示不同的页面内容。

这样,你就实现了一个带有滚动动画效果的底部导航栏。当用户点击不同的导航项时,页面内容会相应切换,并且底部导航栏会有滚动动画效果。

回到顶部