Flutter-底部導航欄切換
2024-10-07 13:43:20
程序入口
import 'package:flutter/material.dart';
import 'botton_navigation_widget.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'demo',
theme:ThemeData.light(),
home: BottomNavigationWidget()//導航Widget
);
}
}
導航widget
import 'package:flutter/material.dart';
import 'index.dart';
import 'campus_network.dart';
import 'curriculum.dart';
import 'personal_center.dart'; class BottomNavigationWidget extends StatefulWidget {
@override
_BottomNavigationWidgetState createState() => _BottomNavigationWidgetState();
} class _BottomNavigationWidgetState extends State<BottomNavigationWidget> {
final _BottomNavigationColor = Colors.blue;
//現在的索引
int _currentIndex = 0;
//widget集合
List<Widget> list = List();
//重寫初始化方法,將需要導航的widget添加到集合
@override
void initState() {
list
//..相當於list.
..add(IndexScreen())
..add(CurriculumScreen())
..add(CampusNetworkScreen())
..add(PersonalCenterScreen());
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: list[_currentIndex],
bottomNavigationBar: BottomNavigationBar(
//超過3個不顯示名字,需要設置
type: BottomNavigationBarType.fixed,
items: [
BottomNavigationBarItem(
icon: Icon(
Icons.crop_3_2,
color:_BottomNavigationColor,
),
title: Text(
'首頁'
),
),
BottomNavigationBarItem(
icon: Icon(
Icons.crop_3_2,
color:_BottomNavigationColor,
),
title: Text(
'課程'
),
),
BottomNavigationBarItem(
icon: Icon(
Icons.crop_3_2,
color:_BottomNavigationColor,
),
title: Text(
'分校網絡'
),
),
BottomNavigationBarItem(
icon: Icon(
Icons.crop_3_2,
color:_BottomNavigationColor,
),
title: Text(
'個人中心'
),
),
],
//高亮顯示
currentIndex: _currentIndex,
//點擊導航時更新現在的下標
onTap: (int index){
setState(() {
_currentIndex = index;
});
},
),
);
}
}
需要跳轉的widget
import 'package:flutter/material.dart'; class IndexScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('index'),
),
body: Center(
child: Text('index'),
),
);
}
}
最新文章
- salesforce 零基础开发入门学习(六)简单的数据增删改查页面的构建
- GDB 修改当前判断函数的返回值(即修改寄存器的值)的方法
- R----data.table包介绍学习
- Android 读取SIM卡参数
- 如何判断 Android 应用的 Apk 签名是否一致?
- Clojure学习02:语法
- error C2039: &#39;SetDefaultDllDirectories&#39;错误解决办法
- 张高兴的 Windows 10 IoT 开发笔记:使用 ADS1115 读取模拟信号
- Linux的vi常用命令详解
- Css3盒子模型-css学习之旅(5)
- Android项目刮刮奖详解(二)
- register form code(2nd week blog)
- 刷机补丁包updater-script脚本
- :状态模式:GumballMachine
- PDO预处理语句
- Ajax学习(一)
- 1032 Sharing (25)(25 point(s))
- 【贪心】【后缀自动机】Gym - 101466E - Text Editor
- C#网络编程(二)应用篇
- 20135320赵瀚青LINUX第三章读书笔记