当前位置: 首页 > 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;});},),);}
}

相关文章:

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

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

aws服务器配置密码登陆

在 AWS 上&#xff0c;EC2 实例默认使用密钥对进行身份验证&#xff0c;而不是密码登录。不过&#xff0c;你可以通过以下步骤在 EC2 实例上启用密码登录&#xff1a; 登录 AWS 管理控制台并导航到 EC2 服务。 选择要配置密码登录的目标 EC2 实例。 在底部的 “描述” 标签页…...

【命令行魔法:掌握Linux基础工具开发的独门技艺】

本节目标 1.Linux 软件包管理器 2.Linux开发工具 3.Linux编译器-gcc/g使用 4.Linux项目自动化构建工具-make/Makefile 5.Linux第一个小程序&#xff0d;进度条 1.Linux 软件包管理器 yum 什么是软件包 在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译…...

虚拟DOM的原理和理解

Virtual DOM前言 在传统的Web开发中&#xff0c;直接操作真实的DOM通常是一个昂贵且低效的操作。为了解决这个问题&#xff0c;Virtual DOM&#xff08;虚拟DOM&#xff09;被引入为一个中间层&#xff0c;允许开发者在内存中进行操作&#xff0c;从而避免频繁且不必要的真实DO…...

C# WPF Threads 和 Dispatchers 有什么区别

在C# WPF&#xff08;Windows Presentation Foundation&#xff09;中&#xff0c;Threads&#xff08;线程&#xff09;和Dispatchers&#xff08;调度器&#xff09;之间的关系非常重要&#xff0c;因为WPF是一个基于STA&#xff08;单线程单元&#xff09;的UI框架。 Threa…...

【文末送书——数学经典著作】工科必备的数学思维培养

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和技术。关…...

【云备份项目两万字总结】服务端篇 -----附源码

项目总结 整体回顾逐步实现utill.hppconfig.hppdata.hpphot.hppservice.hpp 代码 整体回顾 服务端的目标是&#xff1a; 对客户端的请求进行处理管理客户端上传的文件 于客户端进行数据交换&#xff0c;我们需要引入网络&#xff0c;所以我们引入第三方库----httplib.h库&am…...

蓝眼开源云盘部署全过程(手动安装)

环境概述&#xff1a; 系统-Centos7.4 数据库-MySQL8 云盘系统-Tank4.0.1 前提&#xff1a;操作系统已完成安装&#xff0c;有外部网络。 一.安装数据库 cd到合适的目录进行下载安装操作&#xff0c;期间不要切换出去。 wget https://dev.mysql.com/get/mysql80-community-r…...

aliyun Rest ful api V3版本身份验证构造

aliyun Rest ful api V3版本身份验证构造 参考官网&#xff1a;https://help.aliyun.com/zh/sdk/product-overview/v3-request-structure-and-signature?spma2c4g.11186623.0.0.787951e7lHcjZb 构造代码 &#xff1a;使用GET请求进行构造&#xff0c;算法使用sha256 使用postm…...

windows10上使用Visual Studio对树莓派进行交叉编译示例

本文主要介绍通过Visual Studio对树莓派进行交叉编译的方法。 1 环境 宿主机&#xff1a; 系统&#xff1a;Windows10 开发平台&#xff1a;Visual Studio 2022 (我用的是社区版) VisualGDB: VisualGDB - Download (我下的试用版本) GNU工具链: Prebuilt GNU toolchain f…...

flutter开发web应用支持浏览器跨域设置

开发web应用难免会遇到跨域问题&#xff0c;所以flutter设置允许web跨域的设置是要在你的flutter安装路径下面 flutter\bin\cache 找到flutter_tools.stamp文件&#xff0c;然后删除掉&#xff1a;这个文件是临时缓存文件 然后找到 flutter\packages\flutter_tools\lib\src\web…...

C#调用C++动态库接口函数和回调函数方法

这篇文章主要介绍了C#调用C动态库接口函数和回调函数方法&#xff0c;通过C端编写接口展开内容&#xff0c;文章介绍详细具有一定的参考价值&#xff0c;需要的小伙伴可以参考一下 需求: 当前C已经写好了一个动态库&#xff0c;完成了产品开发需求&#xff0c;C#需要调用C编写…...

3D造型渲染软件DAZ Studio mac中文版介绍

DAZ Studio mac是一款3D造型和渲染软件&#xff0c;由 Daz 3D 公司开发。它允许用户创建、编辑、动画化并渲染精美的数字图像与动画。DAZ Studio 还提供了一个虚拟的3D艺术家工作室环境&#xff0c;让用户可以轻松地设置场景、布置角色和应用材质。 用户可以通过 DAZ Studio 中…...

破解tomcat密码并上传webshell

tomcat基础认证爆破 暴力破解 进入vulnhub的tomcat8目录&#xff0c;启动环境 由于tomcat密码默认最大尝试错误次数为5次&#xff0c;需要修改server.xml&#xff0c;修改下面字段 failureCount"10000000000" lockOutTime"0"tomcat默认界面&#xff0c;…...

Java 8 Stream 的使用场景

Java 8 Stream 的使用场景 只符合所筛选条件至多一条 CommonArea l common.stream().filter(item ->item.getName().equals("aa")).findAny().orElse(null);返回多条记录 List<Object> list common.stream().filter(item -> item.getName().equals(&…...

图片转换到PDF

把一系列图片整合到PDF格式 Python代码 import os from io import BytesIO from PIL import Imageos.environ[NLS_LANG] SIMPLIFIED CHINESE_CHINA.UTF8 SUPPORT_SUFFIX ["jpg", "jpeg", "png"]def pic_to_pdf(image_bytes: bytes) -> byt…...

代码模版-实现重置按钮清空表单数据,vue+elementUI

文章目录 界面代码 界面 页面上可能会有「搜索」按钮 也会有「重置」按钮 重置 btn 的作用是为了清空前面 form 表单中的数据 代码 我们使用 elementUI vue 来做 解释&#xff1a;我们在 el-form 组件中加上 ref"searchFormRef"&#xff0c;后续 js 中通过 thi…...

人格障碍在线测试,人格障碍筛查和判断 PDQ-4+

每个人都是独一无二的&#xff0c;每个人都存在人格上的偏差&#xff0c;日常生活中我们携带着自己的人格在忙碌&#xff0c;在不够成对学习、生活和工作的影响下&#xff0c;我们认为都是健康的人格&#xff0c;反之则属于人格障碍。 人格障碍给我们的日常生活带来极大的影响…...

redis相关文章汇总

一、redis结构 1-redis-功能分类 跳转 redis数据结构对比跳转 以下链接忽略&#xff1a; 01-Redis数据结构-汇总跳转 02-Redis数据结构-List跳转 03-Redis数据结构-dict跳转 二、redis问题攻克难点 缓存穿透、缓存雪崩、缓存击穿区别和解决方案跳转 DB和缓存一致性的问题…...

安防监控展示预约小程序的作用如何

监控在生活中的用途非常广泛&#xff0c;普遍应用于小区门户、商业大厦、产业基地、家庭、汽车等场景中&#xff0c;市场需求较大&#xff0c;同时随着科技发展&#xff0c;安防监控产品更新迭代也比较快&#xff0c;衍生出的经销店、安装技术工等产业近些年也比较火。 安防监…...

FPGA网络加速入门:拆解Xilinx 7系列GTP与1G/2.5G Ethernet PCS/PMA IP核,搞懂SGMII接口那些事

FPGA网络加速实战&#xff1a;从Xilinx GTP架构到SGMII接口的深度解析 在FPGA高速通信领域&#xff0c;以太网接口设计一直是工程师面临的核心挑战之一。当我们需要在Xilinx 7系列FPGA上实现1G/2.5G以太网功能时&#xff0c;GTP收发器与PCS/PMA IP核的配置往往成为项目成败的关…...

OLED多级菜单移植与设计实战

1. 低成本嵌入式项目的OLED多级菜单设计 第一次接触OLED多级菜单是在一个智能温控器的DIY项目里。当时为了给设备做个简单的交互界面&#xff0c;我试过各种方案&#xff0c;最后发现0.96寸的OLED屏配上多级菜单是最经济实惠的选择。这种组合特别适合预算有限但又需要基本人机交…...

手把手教你为OpenBMC (AST2600平台) 正确配置PCA9545 I2C Switch的DTS节点

深入解析AST2600平台PCA9545 I2C Switch设备树配置实战指南 在嵌入式系统开发中&#xff0c;I2C总线扩展是连接多个外设的常见需求。NXP的PCA9545作为一款4通道I2C总线开关芯片&#xff0c;能够有效解决I2C地址冲突问题&#xff0c;但在实际应用中&#xff0c;设备树(DTS)配置…...

手把手教你用VSCode快速定位并修改RuoYi框架的页面标题和图标(避坑指南)

高效定制RuoYi前端界面&#xff1a;VSCode全局搜索实战指南 刚接触RuoYi框架的开发者常会遇到这样的困扰&#xff1a;想修改浏览器标签页标题或系统Logo&#xff0c;却不知从何下手。前后端分离的项目结构让配置文件散落在各处&#xff0c;而手动翻找无异于大海捞针。本文将带你…...

Python MCP服务部署卡在step3?揭秘92%开发者忽略的config.toml权限校验机制(配置失效终极诊断指南)

第一章&#xff1a;Python MCP服务部署卡在step3的典型现象与问题定位当执行 Python MCP&#xff08;Model Control Platform&#xff09;服务自动化部署脚本时&#xff0c;step3&#xff08;即服务容器化构建与镜像推送阶段&#xff09;常出现长时间无响应、日志停滞于 Buildi…...

Mojo加速Python科学计算:如何在72小时内将AI推理速度提升8.6倍(附完整可运行代码)

第一章&#xff1a;Mojo与Python混合编程概述Mojo 是一种为 AI 系统量身打造的现代系统编程语言&#xff0c;兼具 Python 的易用性与 C/C 的执行效率。它原生兼容 Python 生态&#xff0c;允许开发者在同一个项目中无缝调用 Python 模块、复用现有 NumPy/Torch 代码&#xff0c…...

从裸机到RTOS:IMX6ULL启动流程与FreeRTOS源码实战解析

1. IMX6ULL裸机启动机制详解 第一次拿到IMX6ULL开发板时&#xff0c;很多人会疑惑&#xff1a;为什么我的程序烧录进去没反应&#xff1f;这得从芯片的启动机制说起。IMX6ULL上电后最先执行的并不是我们写的代码&#xff0c;而是芯片内部ROM中的固化程序。这个ROM代码就像个尽职…...

逆向工程实战:如何用dbcc解析第三方CAN协议(含自定义结构体改造技巧)

逆向工程实战&#xff1a;用dbcc深度解析非标CAN协议与结构体改造技巧 在汽车电子和工业控制领域&#xff0c;CAN总线协议逆向分析是一项极具挑战性的工作。面对没有文档说明的第三方设备或商用车辆黑盒协议&#xff0c;工程师常常需要从原始数据流中重建通信逻辑。本文将深入探…...

Java微服务集成TranslateGemma:企业级翻译中台构建

Java微服务集成TranslateGemma&#xff1a;企业级翻译中台构建 1. 为什么需要企业级翻译中台 最近在给一家跨境电商平台做技术咨询时&#xff0c;客户提到一个很实际的问题&#xff1a;他们的客服系统、商品管理系统、营销内容平台各自维护着不同的翻译逻辑。客服用的是第三方…...

马西奎《电磁场与电磁波》学习记录-第 2 章学前准备-坐标系的深入 + 微分元(dl、dS、dV)

一、正交坐标系的一般概念1. 什么是正交曲线坐标系三组坐标面互相垂直正交单位矢量处处正交&#xff1a;​⊥​⊥​直角、圆柱、球坐标都属于这一类。2. 坐标变量与拉梅系数&#xff08;度量系数&#xff09;对一般正交曲线坐标 (,​,​)&#xff1a;坐标面&#xff1a;​常数、…...