热门标签 | 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响应函数,则不会有响应效果,如水波纹。



推荐阅读
  • 俗话说得好,“工欲善其事,必先利其器”。这句话不仅强调了工具的重要性,也提醒我们在任何项目开始前,准备合适的工具至关重要。本文将介绍几款C语言编程中常用的工具,帮助初学者更好地选择适合自己学习和工作的编程环境。 ... [详细]
  • 创建项目:Visual Studio Online 入门指南
    本文介绍如何使用微软的 Visual Studio Online(VSO)创建和管理开发项目。作为一款基于云计算的开发平台,VSO 提供了丰富的工具和服务,简化了项目的配置和部署流程。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • Android LED 数字字体的应用与实现
    本文介绍了一种适用于 Android 应用的 LED 数字字体(digital font),并详细描述了其在 UI 设计中的应用场景及其实现方法。这种字体常用于视频、广告倒计时等场景,能够增强视觉效果。 ... [详细]
  • RecyclerView初步学习(一)
    RecyclerView初步学习(一)ReCyclerView提供了一种插件式的编程模式,除了提供ViewHolder缓存模式,还可以自定义动画,分割符,布局样式,相比于传统的ListVi ... [详细]
  • 本文详细介绍了如何在 Windows 环境下使用 node-gyp 工具进行 Node.js 本地扩展的编译和配置,涵盖从环境搭建到代码实现的全过程。 ... [详细]
  • 本文探讨了如何通过预处理器开关选择不同的类实现,并解决在特定情况下遇到的链接器错误。 ... [详细]
  • 本文详细介绍了如何在PHP中进行数组删除、清空等操作,并提供了在Visual Studio Code中创建PHP文件的步骤。 ... [详细]
  • 本文将带您了解Cocos家族的不同版本和分支,特别是Cocos Creator的发展历程及其核心特性,帮助初学者快速入门。 ... [详细]
  • 利用jstack进行死锁检测与线程堆栈分析
    本文介绍了如何使用jstack工具进行Java应用中的死锁检测及高CPU使用率线程的堆栈分析,帮助开发者快速定位并解决性能瓶颈。 ... [详细]
  • Ubuntu GamePack:专为游戏爱好者打造的Linux发行版
    随着Linux系统在游戏领域的应用越来越广泛,许多Linux用户开始寻求在自己的系统上畅玩游戏的方法。UALinux,一家致力于推广GNU/Linux使用的乌克兰公司,推出了基于Ubuntu 16.04的Ubuntu GamePack,旨在为Linux用户提供一个游戏友好型的操作环境。 ... [详细]
  • OBS (Open Broadcaster Software) 架构解析
    本文介绍 OBS(Open Broadcaster Software),一款专为直播设计的开源软件。文章将详细探讨其技术架构、核心组件及其开发环境要求。 ... [详细]
  • 在使用MFC进行项目开发时,可能会遇到编译错误C2244,提示函数定义与现有声明不匹配。本文将详细介绍这一错误的原因及解决方案。 ... [详细]
  • Flutter 高德地图插件使用指南
    本文档详细介绍了如何在Flutter项目中集成和使用高德地图插件,包括安装、配置及基本使用方法。 ... [详细]
  • Windows 系统中 Flutter 与 IntelliJ IDEA 的环境配置指南
    本指南详细介绍了如何在 Windows 操作系统上设置 Flutter 开发环境,并集成至 IntelliJ IDEA 中,适合初学者及专业人士参考。 ... [详细]
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社区 版权所有