_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State {
//底部导航栏的四个title
final _appBarTitle = [‘News’, ‘Updates’, ‘Find’, ‘My’];
//底部四个导航栏的view
List _navigationIconView;
//当前条目
var _currentIndex = 0;
//底部导航栏对应的四个page
List _pages;
PageController _pageController;
@override
void initState() {
// TODO: implement initState
super.initState();
//初始化底部导航栏
_navigationIconView = [
NavigationIconView(
title: ‘News’,
iconPath: ‘assets/images/ic_nav_news_normal.png’,
activeIconPath: ‘assets/images/ic_nav_news_actived.png’),
NavigationIconView(
title: ‘Updates’,
iconPath: ‘assets/images/ic_nav_tweet_normal.png’,
activeIconPath: ‘assets/images/ic_nav_tweet_actived.png’),
NavigationIconView(
title: ‘Find’,
iconPath: ‘assets/images/ic_nav_discover_normal.png’,
activeIconPath: ‘assets/images/ic_nav_discover_actived.png’),
NavigationIconView(
title: ‘My’,
iconPath: ‘assets/images/ic_nav_my_normal.png’,
activeIconPath: ‘assets/images/ic_nav_my_pressed.png’),
];
_pages = [
Container(color: Colors.red,),
Container(color: Colors.blue,),
Container(color: Colors.yellow,),
Container(color: Colors.green,),
];
_pageController = PageController(initialPage: _currentIndex);
}
@override
Widget build(BuildContext context) {
//SafeArea 适配刘海屏等
return Scaffold(
/**
- appBar
*/
appBar: AppBar(
title: Text(‘OpenSource China’),
),
/**
*body
*/
//body的pager的滑动PageView来协助实现
body: PageView.builder(
itemBuilder: (BuildContext context, int index){
return _pages[index];
},
controller: _pageController,
//控制可以滑动的数目
itemCount: _pages.length,
//与底部导航栏交互
onPageChanged: (index) {
setState(() {
_currentIndex = index;
});
},
),
/**
- 底部导航栏
*/
bottomNavigationBar: BottomNavigationBar(
//更新当前的条目
currentIndex: _currentIndex,
type: BottomNavigationBarType.fixed,
items: _navigationIconView.map((e) => e.item).toList(),
onTap: (index) {
setState(() {
_currentIndex = index;
});
//底部导航栏的滑动
_pageController.animateToPage(
index, duration: Duration(microseconds: 10), curve: Curves.ease);
},
),
);
}
}
navigation_icon_view.dart底部导航栏的对象,包含title以及icon的路径,使用构造函数来实现
import ‘package:flutter/material.dart’;
/// 自定义底部导航栏的四个View
class NavigationIconView{
小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
Java面试核心知识点笔记
其中囊括了JVM、锁、并发、Java反射、Spring原理、微服务、Zookeeper、数据库、数据结构等大量知识点。
Java中高级面试高频考点整理
最后分享Java进阶学习及面试必备的视频教学
eper、数据库、数据结构等大量知识点。
[外链图片转存中…(img-DB4eeLCD-1710398586476)]
Java中高级面试高频考点整理
[外链图片转存中…(img-3yGRHoDz-1710398586477)]
[外链图片转存中…(img-o3uH7hPo-1710398586477)]
最后分享Java进阶学习及面试必备的视频教学
[外链图片转存中…(img-AeyAxy2z-1710398586477)]