当前位置:   article > 正文

Flutter 基础篇(二十一)—— Scaffold_flutter scaffold

flutter scaffold

//抽屉菜单

leading: Builder(builder: (context){

return IconButton(

icon: Icon(Icons.dashboard,color:Colors.white),

onPressed: (){},

);

},),

//标题

title: Text(‘导航栏’),

//导航栏右侧菜单

actions: [

IconButton(

icon: Icon(Icons.share),

onPressed: (){},

)

],

),

),

);

}

}

TabBar


Material 组件库中,提供了 TabBar 组件用于快速生成 Tab 菜单。在导航栏的底部通常是一组 Tab 菜单,可以通过上面 AppBarbottom 属性来指定这组菜单。示例:

class _HomeContentState extends State with SingleTickerProviderStateMixin{

TabController _tabController;

List tabs = [“新闻”,“历史”,“图片”];

void initState(){

super.initState();

_tabController = TabController(length: tabs.length, vsync: this);

}

@override

Widget build(BuildContext context) {

return Scaffold(

appBar: AppBar(

//抽屉菜单

leading: Builder(builder: (context){

return IconButton(

icon: Icon(Icons.dashboard,color:Colors.white),

onPressed: (){},

);

},),

//标题

title: Text(‘导航栏’),

//导航栏右侧菜单

actions: [

IconButton(

icon: Icon(Icons.share),

onPressed: (){},

)

],

//导航栏底部Tab

bottom: TabBar(

controller: _tabController,

tabs: tabs.map((item) => Tab(text: item)).toList()

),

),

);

}

}

在上面的代码中,TabBar 用于生成一个 Tab 菜单, TabController 用于控制/监听 Tab 菜单的切换,Tab 组件代表一个菜单,定义如下:

Tab({

Key key,

this.text, // 菜单文本

this.icon, // 菜单图标

this.child, // 自定义组件样式

})

TabBarView


通过上面的 TabBar 只能生成一个静态的菜单,Tab 菜单和 Tab 页面切换需要同步,然而实现这一功能的就需要通过 TabBarView 组件了。TabBarView 组件不仅可以轻松实现 Tab ,而且可以非常容易配合 TabBar 来实现同步切换和滑动状态同步。示例:

class _HomeContentState extends State with SingleTickerProviderStateMixin{

TabController _tabController;

List tabs = [“新闻”,“历史”,“图片”];

void initState(){

super.initState();

_tabController = TabController(length: tabs.length, vsync: this);

}

@override

Widget build(BuildContext context) {

return Scaffold(

appBar: AppBar(

//抽屉菜单

leading: Builder(builder: (context){

return IconButton(

icon: Icon(Icons.dashboard,color:Colors.white),

onPressed: (){},

);

},),

//标题

title: Text(‘导航栏’),

//导航栏右侧菜单

actions: [

IconButton(

icon: Icon(Icons.share),

onPressed: (){},

)

],

//导航栏底部Tab

bottom: TabBar(

controller: _tabController,

tabs: tabs.map((item) => Tab(text: item)).toList()

),

),

body: TabBarView(

controller: _tabController,

children: tabs.map((e){

return Container(

alignment: Alignment.center,

child: Text(e,textScaleFactor:5),

);

}).toList(),

),

);

}

}

运行项目后发现效果出来了,无论是点击导航按钮还是手势滑动屏幕,都实现了切换导航的功能。那么,他们是如何同步的呢?答案是:同一个 controller,在上面的例子中,导航 TabBar 中的 controllerTabBarView 中的 controller 是同一个对象。

抽屉菜单


Scaffold 组件提供了 drawerendDrawer 两个属性用于表示一个页面的左、右抽屉菜单。示例:

class MyDrawer extends StatelessWidget{

const MyDrawer({Key key}) : super(key:key);

@override

Widget build(BuildContext context) {

return Drawer(

child: MediaQuery.removePadding(//用于移除Drawer默认的留白

context: context,

removeTop: true,

child: Column(

crossAxisAlignment: CrossAxisAlignment.start,

children: [

Padding(

padding: const EdgeInsets.only(top: 38),

child: Row(

children: [

Padding(

padding: const EdgeInsets.symmetric(horizontal: 16),

child: ClipOval(

child: Image.asset(

‘images/avatar.png’,

width: 80,

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

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

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

img

img

img

img

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

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

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

文末

很多人在刚接触这个行业的时候或者是在遇到瓶颈期的时候,总会遇到一些问题,比如学了一段时间感觉没有方向感,不知道该从那里入手去学习,对此我整理了一些资料,需要的可以免费分享给大家

这里笔者分享一份自己收录整理上述技术体系图相关的几十套腾讯、头条、阿里、美团等公司2021年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。

【视频教程】

天道酬勤,只要你想,大厂offer并不是遥不可及!希望本篇文章能为你带来帮助,如果有问题,请在评论区留言。

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。

[外链图片转存中…(img-5HEz5cHI-1712754202443)]

[外链图片转存中…(img-zRquePRB-1712754202444)]

【视频教程】

[外链图片转存中…(img-St9li74A-1712754202444)]

天道酬勤,只要你想,大厂offer并不是遥不可及!希望本篇文章能为你带来帮助,如果有问题,请在评论区留言。

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号