Flutter底部滚动导航插件rolling_bottom_bar的使用
Flutter底部滚动导航插件rolling_bottom_bar的使用
rolling_bottom_bar
是一个基于 Kabo 的 演示 开发的Flutter插件,它展示了一个带有动态小球指示器的底部导航栏。以下是该插件的详细介绍和使用方法。
新功能 💥
- 通过
flat
属性设置为false
来避免底部导航栏阴影。 - 通过
RollingBottomBarItem
小部件的color
属性为每个项目设置激活颜色。
示例效果
安装
在你的 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
更多关于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,
),
);
}
}
代码解释
-
依赖引入:确保在
pubspec.yaml
中添加了rolling_bottom_bar
依赖,并运行flutter pub get
。 -
应用入口:在
main.dart
中定义了一个MyApp
无状态组件作为应用的入口。 -
主页面:
RollingBottomBarDemo
是一个有状态组件,用于管理底部导航的状态。 -
导航栏:
RollingBottomBar
用于创建底部滚动导航栏。children
:定义了导航项,每个项包含图标和标题。currentIndex
:当前选中的导航项索引。onItemClick
:导航项点击时的回调函数,用于更新当前选中的索引。backgroundColor
、itemColor
、inactiveItemColor
、itemSize
:用于自定义导航栏的外观。
-
页面内容:使用
IndexedStack
根据当前选中的索引显示不同的页面内容。
这样,你就实现了一个带有滚动动画效果的底部导航栏。当用户点击不同的导航项时,页面内容会相应切换,并且底部导航栏会有滚动动画效果。