热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Flutter入门与实战:HelloWorld进阶篇

Flutter入门及实战之He

在初步完成了Flutter应用HelloWorld之后,接下来我们将进一步完善,介绍一些常规处理,譬如,更换图标,设置启动页及添加菜单等等。


环境

操作系统:Windows10

Flutter版本:2.2.2 stable

Dart版本:2.13.3

开发工具:Android Studio Arctic Fox | 2020.3.1、 Visual Studio Code 1.58.2、Visual Studio 2019


替换图标

Android下面把res下面资源文件替换即可,类似Android原生的方式。

Windows下面则需要到对应目录,替换app_icon.ico(ico需要自行转换后替换)。

运行效果:

Android:

Windows:


修改启动页

自动生成的示例代码中,默认的启动页是白屏,可以修改配置文件设置为自定义内容。

打开Android目录下的res目录,修改drawable和drawable-v21下面的launch_background.xml文件,取消item注释,并修改颜色。其中颜色在values下面添加自定义颜色splashColor。


重新编译并运行,效果如下:

当然也可以采用其他方式,如原生修改,或者其他方式替代默认启动页等,这里暂不做介绍。


增加菜单

在之前添加的有状态组件的状态中,有默认的Scaffold组件,它包含了一个页面的基础结构,如导航栏appBar,底部导航栏bottomNavigationBar,页面容器body,悬浮按钮floatingActionButton,drawer抽屉菜单等。接下来,我们将增加菜单示例,包括抽屉菜单等。

增加导航栏菜单


增加抽屉菜单


增加底部导航栏

1.添加页面控制类_pageController及页面信息_pages,并在initState重载函数初始化。其中late关键字的含义是延迟初始化,避免编译报错。


2.添加底部导航栏并处理响应,通过页面控制类_pageController控制跳转。


效果图


延伸

在Flutter框架中,界面相关的可谓一切皆组件,一般在编写界面代码过程中会涉及到child嵌套的问题,譬如一个组件是另外一个组件的child,而当前组件也存在child。

组件嵌套其实可以看做一棵树,不断的延展,最后完成界面绘制。缺点可能是代码比较长,某些地方看起来比较冗余。一般的建议就是,简单界面可以直接添加代码,复杂的则使用函数封装一下。

Flutter里面比较有意思的一点是,如果设置某个参数为null或者不填,则使用默认值。对于可点击的控件,如果不添加onTap或者onPressed响应函数,则不会有响应效果,如水波纹。



推荐阅读
  • ButterKnife 是一款用于 Android 开发的注解库,主要用于简化视图和事件绑定。本文详细介绍了 ButterKnife 的基础用法,包括如何通过注解实现字段和方法的绑定,以及在实际项目中的应用示例。此外,文章还提到了截至 2016 年 4 月 29 日,ButterKnife 的最新版本为 8.0.1,为开发者提供了最新的功能和性能优化。 ... [详细]
  • 在探讨Hibernate框架的高级特性时,缓存机制和懒加载策略是提升数据操作效率的关键要素。缓存策略能够显著减少数据库访问次数,从而提高应用性能,特别是在处理频繁访问的数据时。Hibernate提供了多层次的缓存支持,包括一级缓存和二级缓存,以满足不同场景下的需求。懒加载策略则通过按需加载关联对象,进一步优化了资源利用和响应时间。本文将深入分析这些机制的实现原理及其最佳实践。 ... [详细]
  • 作为软件工程专业的学生,我深知课堂上教师讲解速度之快,很多时候需要课后自行消化和巩固。因此,撰写这篇Java Web开发入门教程,旨在帮助初学者更好地理解和掌握基础知识。通过详细记录学习过程,希望能为更多像我一样在基础方面还有待提升的学员提供有益的参考。 ... [详细]
  • 本文详细介绍了使用 Python 进行 MySQL 和 Redis 数据库操作的实战技巧。首先,针对 MySQL 数据库,通过 `pymysql` 模块展示了如何连接和操作数据库,包括建立连接、执行查询和更新等常见操作。接着,文章深入探讨了 Redis 的基本命令和高级功能,如键值存储、列表操作和事务处理。此外,还提供了多个实际案例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 在 CentOS 6.5 系统上部署 VNC 服务器的详细步骤与配置指南
    在 CentOS 6.5 系统上部署 VNC 服务器时,首先需要确认 VNC 服务是否已安装。通常情况下,VNC 服务默认未安装。可以通过运行特定的查询命令来检查其安装状态。如果查询结果为空,则表明 VNC 服务尚未安装,需进行手动安装。此外,建议在安装前确保系统的软件包管理器已更新至最新版本,以避免兼容性问题。 ... [详细]
  • 今天我开始学习Flutter,并在Android Studio 3.5.3中创建了一个新的Flutter项目。然而,在首次尝试运行时遇到了问题,Gradle任务 `assembleDebug` 执行失败,退出状态码为1。经过初步排查,发现可能是由于依赖项配置不当或Gradle版本不兼容导致的。为了解决这个问题,我计划检查项目的 `build.gradle` 文件,确保所有依赖项和插件版本都符合要求,并尝试更新Gradle版本。此外,还将验证环境变量配置是否正确,以确保开发环境的稳定性。 ... [详细]
  • iOS 设备唯一标识获取的高效解决方案与实践
    在iOS 7中,苹果公司再次禁止了对MAC地址的访问,使得开发者无法直接获取设备的物理地址。为了在开发过程中实现设备的唯一标识,苹果推荐使用Keychain服务来存储和管理唯一的标识符。此外,还可以结合其他技术手段,如UUID和广告标识符(IDFA),以确保设备的唯一性和安全性。这些方法不仅能够满足应用的需求,还能保护用户的隐私。 ... [详细]
  • 本文探讨了资源访问的学习路径与方法,旨在帮助学习者更高效地获取和利用各类资源。通过分析不同资源的特点和应用场景,提出了多种实用的学习策略和技术手段,为学习者提供了系统的指导和建议。 ... [详细]
  • 2012年9月12日优酷土豆校园招聘笔试题目解析与备考指南
    2012年9月12日,优酷土豆校园招聘笔试题目解析与备考指南。在选择题部分,有一道题目涉及中国人的血型分布情况,具体为A型30%、B型20%、O型40%、AB型10%。若需确保在随机选取的样本中,至少有一人为B型血的概率不低于90%,则需要选取的最少人数是多少?该问题不仅考察了概率统计的基本知识,还要求考生具备一定的逻辑推理能力。 ... [详细]
  • Spring框架的核心组件与架构解析 ... [详细]
  • 在 Visual Studio 中,未选中文本时,使用 `Ctrl+X` 可以剪切并删除当前行,适用于快速删除整行代码;`Ctrl+C` 用于复制当前行的代码;`Ctrl+L` 则用于删除当前行。此外,通过组合键 `Ctrl+K, Ctrl+C` 可以注释选定的代码行,提升代码编辑效率。这些快捷键和技巧能够显著提高开发者的生产力,建议开发者熟练掌握并灵活运用。 ... [详细]
  • 本文详细介绍了如何安全地手动卸载Exchange Server 2003,以确保系统的稳定性和数据的完整性。根据微软官方支持文档(https://support.microsoft.com/kb833396/zh-cn),在进行卸载操作前,需要特别注意备份重要数据,并遵循一系列严格的步骤,以避免对现有网络环境造成不利影响。此外,文章还提供了详细的故障排除指南,帮助管理员在遇到问题时能够迅速解决,确保整个卸载过程顺利进行。 ... [详细]
  • 本文详细介绍了在 Vue.js 前端框架中集成 vue-i18n 插件以实现多语言支持的方法。通过具体的配置步骤和示例代码,帮助开发者快速掌握如何在项目中实现国际化功能,提升用户体验。同时,文章还探讨了常见的多语言切换问题及解决方案,为开发人员提供了实用的参考。 ... [详细]
  • 在C#中开发MP3播放器时,我正在考虑如何高效存储元数据以便快速检索。选择合适的数据结构,如字典或数组,对于优化性能至关重要。字典能够提供快速的键值对查找,而数组则在连续存储和遍历方面表现优异。根据具体需求,合理选择数据结构将显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文深入探讨了 hCalendar 微格式在事件与时间、地点相关活动标记中的应用。作为微格式系列文章的第四篇,前文已分别介绍了 rel 属性用于定义链接关系、XFN 微格式增强链接的人际关系描述以及 hCard 微格式对个人和组织信息的描述。本次将重点解析 hCalendar 如何通过结构化数据标记,提高事件信息的可读性和互操作性。 ... [详细]
author-avatar
zy7ume
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有