}

class MyApp extends StatelessWidget {

@override

Widget build(BuildContext context) {

return MaterialApp(

title: ‘OpenSource China’,

theme: ThemeData(

primaryColor: Color(AppColors.APP_THEME), //主题色

),

home: HomePage(),

);

}

}

HomePage.dart主界面内容的布局分为titleBar, body和底部的NavagationBar

import ‘package:flutter/material.dart’;

import ‘package:flutterapp2/widgets/navigation_icon_view.dart’;

class HomePage extends StatefulWidget {

@override

_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,

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)
img

最后,如果大伙有什么好的学习方法或建议欢迎大家在评论中积极留言哈,希望大家能够共同学习、共同努力、共同进步。

小编在这里祝小伙伴们在未来的日子里都可以 升职加薪,当上总经理,出任CEO,迎娶白富美,走上人生巅峰!!

不论遇到什么困难,都不应该成为我们放弃的理由!

很多人在刚接触这个行业的时候或者是在遇到瓶颈期的时候,总会遇到一些问题,比如学了一段时间感觉没有方向感,不知道该从那里入手去学习

如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言,一定会认真查询,修正不足,谢谢。

中积极留言哈,希望大家能够共同学习、共同努力、共同进步。

小编在这里祝小伙伴们在未来的日子里都可以 升职加薪,当上总经理,出任CEO,迎娶白富美,走上人生巅峰!!

不论遇到什么困难,都不应该成为我们放弃的理由!

很多人在刚接触这个行业的时候或者是在遇到瓶颈期的时候,总会遇到一些问题,比如学了一段时间感觉没有方向感,不知道该从那里入手去学习

如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言,一定会认真查询,修正不足,谢谢。

本文已被CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》收录

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐