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



推荐阅读
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • Flutter第六章(BottomNavigationBar ,AppBar,TabBar ,TabController 以及案例)
    版权声明:本文为作者原创书籍。转载请注明作者和出处,未经授权,严禁私自转载,侵权必究!!!情感语录:如果你想得到从未拥有过的东西,那么你必须去做从未做过的事 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 有没有一种方法可以在不继承UIAlertController的子类或不涉及UIAlertActions的情况下 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • IOS开发之短信发送与拨打电话的方法详解
    本文详细介绍了在IOS开发中实现短信发送和拨打电话的两种方式,一种是使用系统底层发送,虽然无法自定义短信内容和返回原应用,但是简单方便;另一种是使用第三方框架发送,需要导入MessageUI头文件,并遵守MFMessageComposeViewControllerDelegate协议,可以实现自定义短信内容和返回原应用的功能。 ... [详细]
  • Flutter App 中创建模块并且依赖 Flutter
    在FlutterApp中打开对应的Android工程;并且向Android原生工程添加一个AndroidModule模块,并且在工程根settings. ... [详细]
  • 腾讯T3大牛亲自教你!2021大厂Android面试经验,经典好文
    本篇将由环境搭建、实现原理、编程开发、插件开发、编译运行、性能稳定、发展未来等七个方面,对当前的ReactNative和Flutter进行全面的分析对比, ... [详细]
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社区 版权所有