Flutter底部导航插件based_dock_scaffold的使用
Flutter底部导航插件based_dock_scaffold
的使用
『 based_dock_scaffold - 基于iPad样式的底部导航栏! 』
最新更新: 2023-07-25 23:54:08
📚 简介
BasedDockScaffold
是一个帮助你创建具有iPad样式的底部导航栏的组件。
📸 截图
![截图](https://raw.githubusercontent.com/Cierra-Runis/based_widget/master/.github/imgs/based_dock_scaffold/screenshot.gif)
或者尝试在线示例应用。
📦 如何使用
⏳ 进度
已完成,但如有必要会进行修订。
📌 注意事项
-
切勿 导入
src
目录下的任何文件:// 错误示例 import 'package:based_dock_scaffold/src/*.dart';
-
切勿 在
dockChild
子树中使用BasedDockScaffold.of(context)
:例如,在示例代码中的widget树中,你无法找到
BasedDockScaffoldState
。 -
BasedDockScaffold
实际上并不是一个Scaffold
组件, 因此不能通过BasedDockScaffold.of(context)
获取ScaffoldState
。 相反,你应该使用Scaffold.of(context)
来获取ScaffoldState
。
🧑💻 贡献者
🔦 声明
该项目根据MIT许可协议授权。详情请查看LICENSE。
示例代码
下面是使用based_dock_scaffold
的完整示例代码:
import 'package:flutter/material.dart';
import 'package:based_dock_scaffold/based_dock_scaffold.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
[@override](/user/override)
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
int _currentIndex = 0;
final List<Widget> _children = [
HomeScreen(),
SettingsScreen(),
ProfileScreen(),
];
void onTabTapped(int index) {
setState(() {
_currentIndex = index;
});
}
[@override](/user/override)
Widget build(BuildContext context) {
return BasedDockScaffold(
dockChild: Container(
color: Colors.white,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[
IconButton(
icon: Icon(Icons.home),
onPressed: () {
onTabTapped(0);
},
),
IconButton(
icon: Icon(Icons.settings),
onPressed: () {
onTabTapped(1);
},
),
IconButton(
icon: Icon(Icons.person),
onPressed: () {
onTabTapped(2);
},
),
],
),
),
body: _children[_currentIndex],
);
}
}
class HomeScreen extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return Center(child: Text('Home Screen'));
}
}
class SettingsScreen extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return Center(child: Text('Settings Screen'));
}
}
class ProfileScreen extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return Center(child: Text('Profile Screen'));
}
}
更多关于Flutter底部导航插件based_dock_scaffold的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复