当前位置: 首页 > news >正文

使用flutter的Scaffold脚手架开发一个最简单的带tabbar的app模板

flutter自带的scaffold脚手架可以说还是挺好用的,集成了appBar,还有左侧抽屉,还有底部tabbar,可以说拿来就可以用了啊,所以我今天也体验了一下,做了一个最简单的demo,就当是学习记录了。

效果展示:

基础的项目目录: 

pages里面存放的是每个页面的页面代码,然后在main.dart中将四个页面引入

然后再开始配置scaffold脚手架:一下是项目的完成代码

import 'package:flutter/material.dart';
import 'package:flutter_app/pages/car.dart';
import 'package:flutter_app/pages/search.dart';
import 'package:flutter_app/pages/home.dart';
import 'package:flutter_app/pages/my.dart';
import 'package:get/get.dart';void main() {runApp(const MyApp());
}class MyApp extends StatelessWidget {const MyApp({super.key});// This widget is the root of your application.@overrideWidget build(BuildContext context) {// 返回素材组件return GetMaterialApp(title: 'Flutter Demo',theme: ThemeData(primaryColor: Colors.deepPurple),// 其实要返回一个对象的,但是在flutter中,new可以省略,所以const MyHomePage()home: const Home(),);}
}// 创建一个有状态的组件
class Home extends StatefulWidget {const Home({super.key});@overrideState<StatefulWidget> createState() => _HomeState();
}class _HomeState extends State<Home> {// tabbarvar tabIndex = 0;// 页面组件var pageList = [HomePage(), SearchPage(), CarPage(), MyPage()];@overrideWidget build(BuildContext context) {return Scaffold(appBar: AppBar(title: const Text("电影频道"),centerTitle: true,backgroundColor: Colors.blue,),drawer: Drawer(child: ListView(children: [UserAccountsDrawerHeader(accountEmail: Text('wo shi Email'),accountName: Text('我是Drawer'),currentAccountPicture: CircleAvatar(backgroundImage: AssetImage('images/avatar.jpg'),),),ListTile(title: Text("淘宝购物"),leading: Icon(Icons.shop),trailing: Icon(Icons.legend_toggle),),ListTile(title: Text("拼多多商城"),leading: Icon(Icons.piano),trailing: Icon(Icons.legend_toggle),),ListTile(title: Text("京东优选"),leading: Icon(Icons.generating_tokens_sharp),trailing: Icon(Icons.legend_toggle),),ListTile(title: Text("随便买买"),leading: Icon(Icons.home),trailing: Icon(Icons.legend_toggle),),],),),body: pageList[tabIndex],bottomNavigationBar: BottomNavigationBar(items: [BottomNavigationBarItem(icon: Icon(Icons.home), label: "首页"),BottomNavigationBarItem(icon: Icon(Icons.search), label: "搜索"),BottomNavigationBarItem(icon: Icon(Icons.category_rounded), label: "购物车"),BottomNavigationBarItem(icon: Icon(Icons.supervised_user_circle), label: "我的"),],type: BottomNavigationBarType.fixed,currentIndex: tabIndex,// backgroundColor: Colors.blue,showUnselectedLabels: true,unselectedItemColor: Colors.grey,unselectedLabelStyle: TextStyle(color: Colors.grey),selectedItemColor: Colors.blue,selectedLabelStyle: TextStyle(color: Colors.blue),onTap: (index) {print(index);setState(() {tabIndex = index;});},),);}
}

http://www.lryc.cn/news/231872.html

相关文章:

  • aws服务器配置密码登陆
  • 【命令行魔法:掌握Linux基础工具开发的独门技艺】
  • 虚拟DOM的原理和理解
  • C# WPF Threads 和 Dispatchers 有什么区别
  • 【文末送书——数学经典著作】工科必备的数学思维培养
  • 【云备份项目两万字总结】服务端篇 -----附源码
  • 蓝眼开源云盘部署全过程(手动安装)
  • aliyun Rest ful api V3版本身份验证构造
  • windows10上使用Visual Studio对树莓派进行交叉编译示例
  • flutter开发web应用支持浏览器跨域设置
  • C#调用C++动态库接口函数和回调函数方法
  • 3D造型渲染软件DAZ Studio mac中文版介绍
  • 破解tomcat密码并上传webshell
  • Java 8 Stream 的使用场景
  • 图片转换到PDF
  • 代码模版-实现重置按钮清空表单数据,vue+elementUI
  • 人格障碍在线测试,人格障碍筛查和判断 PDQ-4+
  • redis相关文章汇总
  • 安防监控展示预约小程序的作用如何
  • (Matalb回归预测)WOA-BP鲸鱼算法优化BP神经网络的多维回归预测
  • 某头部通信企业:SDLC+模糊测试,保障数实融合安全发展
  • 【fbtft】如何添加fbtft驱动
  • 【2023云栖】郭瑞杰:阿里云搜索产品智能化升级
  • 数据库事务相关问题
  • Digicert证书:您的网络安全守护神
  • LLM App ≈ 数据ETL管线
  • k8s的error: metrics not available yet问题处理
  • 简单的python爬虫工具,B站视频爬虫
  • Shopee买家号有什么作用?如何才能拥有大量的虾皮买家号?
  • OCR名片识别:手机电脑大比拼,哪个更胜一筹?