首页
学习
活动
专区
圈层
工具
发布

Flutter 文本解读 8 | Icon 与 RichText 的渊源

但你想过 Icon 组件是如何实现的吗?你有想过 Icons.android_rounded 到底代表什么吗?我跟你说它的本质就是文字你相信吗?...如果你查看一下 应用的数据, 可以发现如下的图标字体文件。这就是图标数据的来源。 ? 这时你也许会想,我可以用自己的 图标字体 ,默认的这些可以不用,毕竟两个加起来有 1 M 多,挺浪费空间的。...这时你需要注意:Flutter 中一些组件会使用这些字体,在用的时候,换成自己的即可。 ? ---- 4. Icon 和 文字的联系 通过前面的描述,你应该了解 Icon 和 文字的联系了。...---- 这样,就可以将下载的图标字体用在 Flutter 中了。当然,我们也可以仿照 Icons 源码那样,提供一个 TolyIcon.XXX 来获取 IconData 数据。 ?...你不知道有种力量叫做工具,程序就是为了解决这些无脑劳动而诞生的。下面来一起看看,如何 让代码生成代码。 ---- 三、动手写个小工具 1.

1.4K10

Flutter 基础知识点总结

正好最近刚入门了Flutter,并在项目中进行了一些应用,于是将应用的一些心得进行整理,希望帮助更多的初学者。 在学习Flutter之前,让我们先来认识下什么是Flutter跨平台。...) Reactive(响应式编程) 在学习Dart语言之前,需要明白几个重要的概念: 在Dart中,一切都是对象,所有的对象都是继承自Object; Dart是强类型语言,但可以用var或 dynamic...Dart中使用 Map 表示key-value键值对。...整体拆解 根据设计图,可以看出整体时分行展示的,因此最外层是一个Column元素 第一行为标题,涉及到不对称的布局,可以用一个Stack或者Row来进行,用Row的话,则需要右边填上一个空白的widget...每一行之间的间隔,则可以考虑用Padding或者Container来设置。

5.8K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    化繁为简:Flutter组件依赖可视化

    那么我们如何才能得到一张结构清晰、效果酷炫的依赖关系图呢?跟随我的脚步,我们一起剖析如何实现 Flutter 的依赖可视化。...那么接下来我们就从一个小 Demo 开始,跟着我来了解一个简单的 Flutter 依赖可视化小工具是如何实现的。 4 从一个Demo开始 先来看一个简单的 Demo。...Flutter 官方提供了解析组件依赖树的命令行工具 flutter pub deps -s list ,该工具可以用来获取组件间的依赖关系清单。...如下是 DepsList 的类图: 其中 sections 是一个依赖关系集合,它以 Key-Value 的形式存储了所有组件的依赖信息。...packages, { bool escapeLabels = false, Iterable ignorePackages = const [], }) { // 初始化 Gviz,设置绘制属性

    1.5K10

    flutter--Dart基础语法(一)注释、变量、数据类型、运算符

    因为Dart囊括了多数编程语言的优点,它更符合Flutter构建界面的方式。 本文主要就是简单梳理一下Dart语言的一些基础知识和语法。...Final 变量的值只能被设置一次; Const 变量在编译时就已经固定 (Const 变量 是隐式 Final 的类型.) 。最高级 final 变量或类变量在第一次使用时被初始化。...因为在 Dart 所有的变量终究是一个对象(一个类的实例), 所以变量可以使用 构造涵数 进行初始化。 一些内建类型拥有自己的构造函数。 例如, 通过 Map() 来构造一个 map 变量。...Dart 中 Map 通过 Map 字面量 和 Map 类型来实现。...对于特殊的非 4 个数值的情况, 把编码值放到大括号中即可。 例如,emoji 的笑脸 (�) 是 \u{1f600}。 String 类有一些属性可以获得 rune 数据。

    3.6K20

    -StatefulWidget的打开方式

    0.前言 刚接触Flutter的小伙伴在StatefulWidget控件时会感觉难以接受 本人一开始也是,不过对React的了解让我很快理解了Flutter的状态观念 本篇就说一下我对StatefulWidget...在Android里控件修改其属性可以直接`对象.set属性`来设置 但在FLutter里你会奇怪的发现:当你`slider.value=20;`时会报错 这真是让人不爽,对象更改属性不是天经地义吗...但Flutter说:对不起,你不能 这让我恍然大悟,为什么Widget源码里说所有的组件都是恒定的,它只是对元素的描述 组件的属性无法被改变因为属性都是final修饰的,既然无法修改,那又为什么会有状态一说...这便是宇宙的平衡。 一开始学编程时,定义了一个Circle类,可以用对象来算面积, 当时就想,这有必要吗,一个方法就搞定了啊,是不是有点小题大做。...---- 5:组件间的组合 看一下Flutter中组合Slider和Text是多么简洁,只要添加一些就行了 如果Android自定义这样的控件,需要自定义ViewGroup,将两个组件拼合 所以Flutter

    1.4K10

    Flutter零基础入门(五):List列表与遍历

    在真实开发中,你会经常遇到这样的场景: ·一个商品列表 ·多个用户信息 ·一组数字或字符串 这时,一个变量已经远远不够, 我们需要一种可以 存储一组数据 的结构 —— List。...Jack', 'Lucy']; print(names[0]); // Tom print(names[1]); // Jack ⚠️ 注意: ·最大索引是 长度 - 1 ·越界会报错 四、List 的常用属性和方法... titles = ['首页', '消息', '我的']; 后续你会学到如何: 用一个 List,生成多个 Widget 十、总结 本篇你已经学会了: ·什么是 List ·如何定义和操作...List ·如何使用循环遍历 List ·List 在 Flutter 中的重要性 你已经迈出了: 从“单个数据” → “一组数据”的关键一步 下一篇预告 《Flutter 零基础入门(六):Map...键值对与简单数据模型》 下一篇我们将学习: ·什么是 Map ·如何用 key-value 描述一条数据 ·List + Map 的组合使用 ·为真实业务数据建模打基础 从下一篇开始,你写的代码将越来越接近

    23410

    Flutter 下载篇 - 叁 | 网络库切换实践与思考

    优化点:dynamic的告警问题 在第2和20行中,黄色标记表明,如果第2行中的每个网络库下载的返回值可能不同,则考虑将其设置为“dynamic”,这可能导致第20行中出现响应状态码的告警,因为该属性可能不存在...话说,取消发送一条消息难道非得抛出异常才可以吗?其实有很多方法可以实现这个功能。 约束二:请提供下载请求的返回码。...Downloader 负责任务下载,并通过同步或异步消息通知当前下载任务的状态。DownloadManger 通过这些消息来更新任务列表。 Downloader 通过向网络库发送请求来下载任务。...网络将结果返回给 Downloader,由 Downloader 来决定内部状态和断点续传逻辑。 总结 本文介绍了Flutter下载功能的实践和探索,包括网络库的切换和优化。...我希望我为你投入的时间增加了一些价值。 本文原创听蝉。

    1.1K20

    flutter插件开发需要了解的EventChannel与MethodChannel

    MethodChannel用通俗的语言来描述它的作用就是,当你像在flutter端调用native功能的时候,可以用它。...EventChannel用通俗的语言来描述就是,当native想通知flutter层一些消息的时候,可以用它。...args) 好的,我们的认识更进了一步,那么,在问一个问题,如果多次注册同一个EventChannel并listen,那么每个都有效吗?...就直接说答案了,并不是每个都有效,有效的只是最后注册的那一个。 还记得我们的plugin的实例只有一个吗?还记得其中的成员EventChannel也只有一个吗?...EventChannel可以有多个吗? 这个当然是没问题的,多个EventChannel只需要在registerWith方法中注册一一进行注册就OK了。

    7K52

    第129期:flutter布局和开发响应式app的方案

    Containter有些疑惑,Containter其实是一个容器组件,我们可以用它来控制一些子组件的展示,比如我们想要添加padding,margin,border,background- color等属性时...,我们就可以用它来控制,用法和div基本一样。...(使用)放置一个组件 在flutter中如何使用组件呢?很简单。 比如,我想要一个居中的效果,那么我就使用Center组件;想要水平布局,我就使用row组件,想要垂直效果,就使用column组件。...flutter实现响应式的方法 使用flutter我们可以非常方便的开发出响应式或自适应的app。有两种可行的方案: 一种是利用LayoutBuilder这个类。...通过它的builder属性,我们可以获取到BoxConstraints对象,检查容器的约束性来决定展示什么。

    1.3K50

    Flutter进阶篇(7)-- Flutter路由轻量级框架FRouter

    接收也不太好维护 页面冗余代码比较多 二、FRouter轻量级路由框架的思路 针对以上路由存在的问题,我对路由做了一个封装,解决了路由存在的一些问题,把发送和接收路由做了统一处理,并且对不同的页面需求做了适应...routers属性表示使用命名路由时,需要设置的路由管理的一个Map集合,child属性就是我们自己的页面内容了,比如这里使用一个RaisedButton按钮,我点击它发送路由,我可以使用 FRouter.sendRouter...PageOne 页面构建的时候,同样使用FRouter,这里需要注意的是,它不是首页,所以不需要设置isFirstPage属性(默认就是false 非首页),我点击按钮返回上个页面的时候,使用FRouter.backPageRouter...是不是很方便,全部都用的是 FRouter来统一管理。...,同样使用FRouter,这里需要注意的是,这个页面显示AppBar,所以可以设置isShowAppBar:true属性(默认就是true 显示,如果需要显示AppBar,那么这个属性可写可不写),我点击按钮返回上个页面的时候

    1.7K10

    Flutter主题切换——让你的APP也能一键换肤

    状态管理:通俗的讲,当我们想在多个页面(组件/Widget)之间共享状态(数据),或者一个页面(组件/Widget)中的多个子组件之间共享状态(数据),这个时候我们就可以用 Flutter 中的状态管理来管理统一的状态...上面只是ThemeData的一小部分属性,完整的数据定义读者可以查看 SDK。...因为切换主题通常会在设置界面中出现,所以这里我用了一个ExpansionTile,这是一个可以展开的ListTile,代码如下: …………ExpansionTile( leading: Icon(Icons.color_lens...上面这段代码就是将我们最开始选定的一些主题themeColorMap展示出来,告诉用户可以切换哪些主题。...最后来发布一篇预告,因为 iOS 13 和 Android 10 系统上都新增了「深色模式」,在文中我也提到了ThemeData的Brightness brightness属性用于表示深色还是浅色。

    5.3K40

    【FlutterUnit周边】历时两年 FlutterUnit 2.0 版本到来

    FlutterUnit 也会随着我对 Flutter 框架的深入研究而不断完善和进步。...---- 主要的问题有:const 构造及 const 关键字的修饰 无用的包导入: 空安全的遗留问题,非空对象不必判空: 单一属性时,可以不使用 Container 组件,或不必要的 Container...只要在 analysis_options.yaml 中的 rules 中设置即可。...所以我在 flutter_unit_tool 中写了一个小工具类,应用打包完成后,只要修改版本号,就可以自动上传文件以及更新数据库中应用信息的事情。...其中目前以及收录了不少案例,以至于外甥女老是喜欢拿我的手机玩绘制集录,今后也会不断收录一些新鲜有趣的东西给她玩。

    56630

    现有项目集成flutter排坑指南

    二、iOS 不能设置初始路由,flutter官方说已经搞定了,but,尝试依然是拿不到,怎么办?...3、所以要check一下flutter环境,好吧,假设环境也有,也假设你本地是最新的master版本,那么构建机器是和你的环境一致吗?不一致,不一致是不是要改成一致呢?...可以看到,太多的不确定因素会导致我们打包构建失败,怎么办,AAR模式来解救你,在flutter工程中flutter build aar,就会生成一个aar,然后就可以以一个库的形式引入进来了打包了。...5、我的机器打的调试包怎么跑不起来,出现了JNI nativie之类的一些错误提示,这类问题,优先考虑你的flutter版本和大家一致吗?channel和大家一致吗?...7、2x,3x图似乎加载不了,那是因为你使用了中文,flutter会把资源反倒一个mainifest中,它是一个map,如果使用中文,map的key就和路径对不上了,找不到的化,就会找默认图啦,也就是一倍图

    4.9K94

    Flutter网络请求和数据解析

    反射机制简单来说就是动态获取类或者对象中的属性,对于任何一个类,我们都能够知道这个类有哪些方法和属性。对于任何一个对象,我们都能够对它的方法和属性进行调用。...但是不管是dart:convert来处理还是我们使用模型来处理,都是需要我们手动进行的,不仅仅效率比较低,出错的概率也会比较大,在序列化的过程中可能因为一些很细小的错误,导致我们花费大量的时间排查其中的问题...Flutter版本变化的,它们之间版本是相互有影响的,我没记错在执行命令生成g.dart文件的时候,版本不对还有错误产生,具体的错误我之前也忘记没有收集,在这就只能大概的提一句,要真的遇上问题的小伙伴,...@JsonKey(name: 'id') final int goodsId;       但在具体的开发中我们也需要自己给model中写这些代码吗?...那我们有办法持续性的生成序列化模板吗,答案是肯定的,接下来我们再运行命令: flutter packages pub run build_runner watch       这个命令就帮助我们在项目根目录下运行来启动

    1.8K10

    SpringBoot 看似复杂的Environment,其实很简单

    学习C#语法,看类的API,然后从WinForm(窗口)开始,用鼠标拖拽控件,设置控件属性,观察自动生成的代码,开启人生的编程之路。...它们分别是系统环境和系统属性,如下图01: ? 一个是Map类型,一个是Properties类型,说明它们都是一些key-value形式的值。...这样配置项(或配置属性)的问题就已经解决了,很简单吧。 除了配置属性外,还有Profile 配置属性是一个很泛化的概念,说白了它就表示以非写代码的方式从外界向程序中传递特定的值。...很简单,就是这个公式: Environment = Properties + Profiles 表示Properties的接口,主要就是处理一些key-value,如下图11: ?...由于需要能够以编程的方式激活Profile或设置默认Profile,所以也需要能够配置,如下图14: ? 所以,这四个接口就是Spring环境的全部了。

    2.6K40

    Flutter学习

    在Flutter中,一个自定义widget通常是通过组合其它widget来实现的,而不是继承 某些widget属性需要单个widget(child),而其它一些属性,如action,需要一组widgets...还有这么一种场景也可以使用SizeBox,就是可以代替padding和container,然后 用来设置两个控件之间的间距,比如在行或列中就可以设置两个控件之间的间距 主要是可以比使用一个padding...( 延迟队列) 在Flutter可以利用多个CPU内核来执行耗时或计算密集型任务。这是通过使用Isolates来完成的。是一个独立的执行线程,它运行时不会与主线程共享任何内存。...这意味着你不能从该线程访问变量或通过调用setState来更新你的UI。...'); flutter Map result = {'message': '我从Flutter页面回来了'}; nativeChannel.invokeMethod

    3.7K20

    用 Map 为你的属性做代理

    微信公众号 Kotlin 是去年 10 月底开的,到现在,每周最少一篇文章的节奏,把我能想到的的一些关于 Kotlin 的好玩的东西都记录下来告诉大家,结果,我发现一个严重的问题:题目越来越难找了。...你应该知道属性代理其实本质上就是用一个对象接管属性的 get/set 操作,这个东西可以用来实现一些 Observable 相关的操作,也可以用来封装简化一些复杂的读写操作,总之是一款非常好用却有点儿容易让人懵逼的特性...属性背后的 Map 如果大家用过 Python,大家就会知道,Python 类有个叫做 __dict__ 的东西(好吧,我实在不知道该怎么称呼它),它以 key-value 的形式存储了一个 Python...通过 Response 的 Header 中设置 link 来告诉客户端分页的情况,例如: Link: 的 Map 类型为 MapWithDefault —— 顾名思义,就是有默认值的 Map。 那么我们的 Map 会有默认值吗?

    79620

    一位Android程序员入坑Flutter后整理出一份超详细的学习笔记

    作为忠实与较资深的Android汪,最近抽出了一些时间研究了一下Google的亲儿子Flutter,尚属皮毛,只能算是个简单的记录吧。...Expanded支持一个类似weight的属性,叫flex。 Container是一个具有decoration属性的容器,可以用来控制背景色,border, margin等等。...因为在Flutter看来吗,Widgets的树结构是不可以被更改的,但是如果想更改,则是通过StatefulWidgets的方法,通过setState来更改Data,触发Widgets重绘,从而替换掉之前的...还有生命周期吗? Flutter有一个叫做WidgetsBinding的可以提供类似生命周期的回调。...Flutter学习笔记,为了更好地整理每个模块,我也参考了很多网上的优质博文和项目,力求不漏掉每一个知识点,很多朋友靠着这些内容进行复习,拿到了BATJ等大厂的offer,希望也能帮助到你。

    3K00
    领券