自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(70)
  • 收藏
  • 关注

原创 Flutter InkWell组件去掉灰色遮罩

Focus widget 检测到焦点变化调用 handleFocusUpdateupdateFocusHighlights 判断是否需要显示焦点updateHighlight 创建 InkHighlight 实例getHighlightColorForType 获取焦点颜色优先使用 focusColor 属性,否则使用主题颜色InkHighlight 被添加到 Material 的 _inkFeatures_RenderInkFeatures 在绘制时遍历所有特效。

2024-10-29 10:55:58 992

原创 Flutter UI组件库(JUI)

JUI Flutter UI组件库JUI是为Flutter开发者打造的全面UI解决方案。它提供:- 丰富多样的预构建组件,从基础按钮到复杂表单- 高度可定制的界面元素,适应各种设计需求- 简洁直观的API,易于集成和使用- 优化的性能,确保流畅用户体验- 一致的设计语言,提升应用整体美感- 详尽的文档和示例,加速开发进程无论是快速原型还是企业级应用,JUI都能助您高效构建出色的Flutter界面。

2024-10-16 11:54:35 1115

原创 Flutter【03】图片输出package依赖关系

安装 graphviz项目根目录pubspec.yaml文件内添加。

2024-09-02 13:16:43 710

原创 Flutter【01】状态管理

Flutter 应用是 声明式 的,这也就意味着 Flutter 构建的用户界面就是应用的当前状态。当你的 Flutter 应用的状态发生改变时(例如,用户在设置界面中点击了一个开关选项)你改变了状态,这将会触发用户界面的重绘。去改变用户界面本身是没有必要的(例如 widget.setText )—你改变了状态,那么用户界面将重新构建。将开发者的重点,从UI展示转移到state的维护上。

2024-08-20 18:08:11 914

原创 Flutter【02】mobx原理

mobx

2024-08-20 18:04:31 789 1

原创 Flutter【01】状态管理

Flutter 应用是 声明式 的,这也就意味着 Flutter 构建的用户界面就是应用的当前状态。当你的 Flutter 应用的状态发生改变时(例如,用户在设置界面中点击了一个开关选项)你改变了状态,这将会触发用户界面的重绘。去改变用户界面本身是没有必要的(例如 widget.setText )—你改变了状态,那么用户界面将重新构建。将开发者的重点,从UI展示转移到state的维护上。

2024-08-20 17:58:42 972

原创 Dart【09】垃圾回收

Dart 的垃圾收集器是,由两个阶段组成:年轻空间清除器和并行标记清除收集器。

2024-08-20 17:53:43 527

原创 Dart【08】常见运算符

int?a = 0 对象可为空。

2024-08-20 17:51:46 159

原创 Dart【07】Isolate并发编程

isolate就像是机器上的一个小空间,带有自己的私有内存块和一个运行事件循环的线程。两个Isolate,每个Isolate都有自己的内存和执行线程。

2024-08-20 17:50:30 647

原创 Dart【06】generator生成器函数

可以渐进的返回一个值的序列。Dart内置了两种生成器函数的支持:同步生成器(sync*):返回一个Iterable对象。异步生成器(async*):返回一个Stream对象。

2024-08-20 17:48:48 257

原创 Dart【05】async和await简化异步

在学习使用async和await之前,你需要先掌握Dart中Future类的使用,因为async和await本质上只是对Future类的简化。学习async和await之前,我们先来看一段使用Futureint num;print(num);});这段代码很简单,将异步函数getNum()返回的值赋值给num,打印num。现在我们使用async和awaitint num;print(num);首先我们将main方法后加入async,使用async的目的就是告诉Dart我要在这里使用。

2024-08-20 17:46:59 944

原创 Dart【04】Stream流

StreamBuilder组件主要有两个参数第一个参数stream,要订阅的流第二个参数builder,widget构建函数可以使用builder函数的snapshot.connectionState属性根据流的不同状态返回不同的组件每当StreamBuilder监听的stream有数据变化时,builder函数就会被调用,组件重新构建。

2024-08-20 17:45:07 1008

原创 Dart【03】Future异步

创建一个方法,将方法的返回值声明为Future,将需要异步执行的代码写到方法返回的Future的构造函数里。一定记住,只有写在Future构造函数里的代码才是异步的。//写在这里的方法是同步的return Future(() {//写在这里的代码是异步的});使用此方法的意义你可能会有些疑问,我直接使用Future的构造方法就可以了,为什么还要这么写,这不是多此一举吗?我会用两段代码给你介绍一下上述方式的作用。i++) {}print('耗时任务结束');});

2024-08-20 17:43:07 713

原创 Dart【02】Timer定时器

Timer类主要用于安排延时任务和定时任务,延时任务是指延迟一段时间之后才执行的任务,定时任务是指每隔一段时间执行一次的任务。默认的构造函数有两个必选参数示例:输出结果一秒之后控制台打印“方法被执行了”。Timer.periodic构造函数有两个必选参数示例:输出结果每隔两秒控制台打印一次的类型想测试Timer类的方法和属性,第一步肯定是创建Timer对象示例:isActive判断当前定时器是否在活跃状态的bool值,如果尚未执行回调并且未取消计时器,则计时器将处于活动状态。如果尚未取消,则计时器处

2024-08-20 17:40:53 959

原创 Dart【01】基本概念和变量

# 写在前面本篇文章是《Dart教程》系列的第一篇,意在帮助有意学习Flutter的朋友了解Dart语言。

2024-08-20 17:38:22 654

原创 Flutter【组件】标签

flutter 标签组件。标签组件是一种常见的 UI 元素,用于显示和管理多个标签(或标签集合)。

2024-07-08 10:53:28 694

原创 Flutter【组件】点击类型表单项

flutter 点击表单项组件,适合用户输入表单的场景。点击表单项组件是一个用户界面元素,通常用于表单或设置界面中,以便用户可以点击它们来选择或更改某些设置或输入内容。这类组件通常由一个标签和一个可点击区域组成,并且可以触发相应的操作或导航到另一个页面。表单项会有个合集,逐个更新。

2024-06-21 14:37:09 360

原创 Flutter【组件】按钮

flutter 按钮组件。提供一种封装按钮组件的思路,并不支持过多的自定义属性。根据使用场景及设计规范进行封装,使用起来比较方便。

2024-06-20 17:51:26 396

原创 Flutter【组件】可折叠文本组件

flutter 可折叠文本组件。点击展开,收起折叠文本。

2024-06-19 15:52:28 426

原创 Flutter【组件】富文本组件

flutter 富文本组件,富文本组件(Rich Text Component)是一个用户界面元素,用于显示和编辑带有多种样式的文本。它允许在同一段文本中应用不同的字体、颜色、大小、粗细、斜体、下划线

2024-06-18 11:06:59 484

原创 如何处理BUG

做好预期,预计该BUG多长时间可以解决。保持良好的心态和钻研精神去解决问题。

2022-10-12 16:02:55 411 1

原创 Dart基础——Dart异步Future与事件循环Event Loop

如何使用异步Future什么是异步如果你的程序中有两个方法,这两个方法桉顺序执行,第一个方法执行需要五秒,如果是同步代码,第二个方法会等待第一个方法执行完,才会被调用,如果第一个方法是异步的,程序在执行第一个方法时,不会等待它执行结束,而是接着执行第二个方法,这样第二个方法就无需在第一个方法执行完之后被调用。在客户端异步是非常有用的,如果你在初始化时有一个非常耗时,但又不需要它在ui画面响应前执行完成的方法,你就可以使用异步。Dart异步处理库Future了解了异步的概念后,我们来看一看如何在D

2022-01-14 16:25:11 1610

原创 Dart基础——语法规范

字符串两个常量字符串(不是变量,是放在引号中的字符串),你不需要使用 + 来连接它们。推荐的写法print( 'ERROR: Parts of the spaceship are on fire. Other ' 'parts are overrun by martians. Unclear which are which.');不推荐的写法print('ERROR: Parts of the spaceship are on fire. Other ' + 'parts

2022-01-14 16:25:03 664

原创 Dart基础——Dart语法

本文主要介绍Dart开发常用的一些语法基础语法两种定义常量的方式使用过程中从来不会被修改的变量, 可以使用 final 或 const,Final 变量的值只能被设置一次;Const 变量在编译时就已经固定 (Const 变量 是隐式 Final 的类型.)final 变量或类变量在第一次使用时被初始化,懒加载 。Const不能定义对象 Final能定义对象例://可以省略String这个类型声明final str = "hi world";//final String str =

2022-01-14 16:24:53 1762

原创 程序员入门之路

本人是大连某三本学校的学生,大一大二的时候没怎么学过习,就在第一学期的C语言课程上认真听了课,听到指针的时候就理解不上去了,然后整个大一大二就这样过去了,非常重要的数据结构一次课都没听过,汗颜,到了大三在房地产公司兼职,由于干的时间长,工作比较努力,由发传单到管别人发传单,当时感觉还好,根本没有从事计算机行业的打算,正是当时兼职的经历让自己对工作的辛苦有了正确的认识,到了大三下学期,由于抱着计算机...

2022-01-14 16:24:19 10075 35

原创 操作系统——链接

1. 什么是链接链接是将代码和数据片段整合成一个可以被加载(复制)到内存中执行的文件。现代操作系统中,链接是由链接器自动执行的。链接最大的作用是分离编译,在编写大型应用程序时,不需要再编译出一个巨大的源文件,可以把代码编译成比较小的,单独的模块。文件修改时只需要重新编译单独的模块就可以了,不需要重新编译整个文件。2. 静态链接流程下图为通过静态链接将两个C源文件编译成可执行目标文件的过程。静态链接:将可重定位目标文件组合成可执行目标文件。静态链接的两个主要工作为符号解析和重定位。3. 目标文件

2021-12-23 15:42:36 4824 1

原创 开源项目—5种技术编写的7个demo工程

android/ios/flutter/angular/java web 5种技术编写的7个demo工程,有点用,可以看看,github地址,https://github.com/ThinkerJack/jack_demo。android_demo1.项目简介《第一行代码》第二版书中示例demo,时间过去比较久,有一些API变动,自己动手写了一遍。2.环境简介语言:java 1.8依赖库:详见android_demo/app/build.gradle下的dependencies3.项目截图.

2021-11-05 10:08:46 658

原创 开源项目—Flutter/iOS/Android编写的三个计算器APP

前端时间使用Flutter,iOS,Android三种技术编写了三个相同功能的计算器APP,github地址,https://github.com/ThinkerJack/android-ios-flutter_notepad。ios_calculator1.项目简介使用Swift编写的IOS APP,实现了计算器的常见功能。2.环境简介语言:Swift 5.4UI框架:UIKit包管理工具:CocoaPods布局框架:SnapKit 5.0.03.项目截图4.开发流程与代码逻辑简述.

2021-11-05 10:07:24 2321

原创 端开发技术—解密Flutter响应式布局

Flutter是一个跨平台的应用开发框架,支持各种屏幕大小的设备,它可以在智能手表这样的小设备上运行,也可以在电视这样的大设备上运行。使用相同的代码来适应不同的屏幕大小和像素密度是一个挑战。Flutter响应式布局的设计没有硬性的规则。在本文中,我将向您展示在设计响应式布局时可以遵循的一些方法。在使用Flutter构建响应式布局之前,我想说明一下Android和iOS是如何处理不同屏幕大小的布局的。1. Android的方法为了处理不同的屏幕尺寸和像素密度,在Android中使用了以下概念:1..

2021-11-05 10:04:15 1979 1

原创 端开发技术—FLutter开发即时通讯

1. 即时通讯简述即时通讯是端开发工作中常见的需求,本篇文章以作者工作中使用FLutter开发社交软件即时通讯需求为背景,描述一下即时通讯功能设计的要点。2. 重要概念即时通讯需要前后端配合,约定消息格式与消息内容。本次IM客户端需求开发使用了公司已有的基于Socket.io搭建的后台,下文描述涉及到的一些概念。2.1 WebSocket协议WebSocket是一种在单个TCP连接上进行全双工通信的协议。WebSocket协议与传统的HTTP协议的主要区别为,WebSocket协议允许服务端主动.

2021-11-05 10:03:15 3765

原创 开源项目—FLutter开发录音APP

Flutter录音APP一个录音小工具,github地址,https://github.com/ThinkerJack/flutter_record。1.语言环境Flutter SDK : stable 2.0.6Dart SDK: stable 2.12.32.项目截图3.开源软件包flutter_sound: ^8.1.9 #录音+转MP3path_provider: ^2.0.1 #获取文件路径dio: ^4.0.0 #发送网络请.

2021-11-04 21:20:02 805

原创 开源项目—swift开发记事本APP

前端时间使用iOS技术编写了一个记事本APP,github地址,https://github.com/ThinkerJack/android-ios-flutter_notepad。ios_notepad1.项目简介使用Swift编写的IOS APP,除了常规记事本的增删改查功能之外,加入了分组功能。2.环境简介语言:Swift 5.4UI框架:UIKit包管理工具:CocoaPods布局框架:SnapKit 5.0.0本地数据库管理库:GRDB.swift3.项目截图4.代码逻.

2021-11-04 21:10:19 627

原创 算法—算法的时间空间复杂度

1. 事后分析法缺点:不同的数据规模,不同的机器下算法运行的时间不同,无法做到计算运行时间2. 事前分析法2.1 大O时间复杂度渐进时间复杂度 随着n的增长,程序运行时间跟随n变化的趋势2.1.1 几个原则去掉常数项2(n^2) =n^2一段代码取时间复杂度最高的test(n) { //时间复杂度n^3 for(int i = 0; i < n ; i++){ for(int i = 0; i < n ; i++){ for(int i = 0; i .

2021-11-04 21:03:35 99

原创 杂谈——什么是Google Fuchsia ?

Google正在开发一个新的操作系统:借助Fuchsia OS,该技术小组放弃了Linux体系结构,转而依靠自行开发的微内核Zircon。Fuchsia 不仅可以替代台式机操作系统Chrome操作系统,而且可以替代专为移动设备设计的Android。尽管事实上,Android在当今市场上几乎是无与伦比的。Google Fuchsia是未来的操作系统吗?我们仔细研究了该项目。什么是Google Fuchsia ?Fuchsia 不仅是红色和蓝色之间的一种颜色,还是Google自2016年以来一直在公众面前

2021-11-04 20:51:42 718

原创 端开发技术—5个高效的Flutter开发工具

1. 你是否需要更好,更简洁的日志?当你在开发Flutter应用程序时,难以理解的日志是一个大问题,因为没有快速的方法来根据问题的严重程度过滤你的日志。抛出异常或记录一条简单的调试消息?他们看起来都一样。如果你的Flutter app需要更好的日志系统,Logger 软件包绝对是个好东西。Logger包地址:https://pub.dev/packages/logger它受到Java分级日志的启发,允许您向日志添加级别。日志级别,目前有:logger.v("Add more deta.

2021-11-04 17:59:56 8058

原创 操作系统—计算机硬件简介.md

1. 简介从概念上讲,一台计算机可以抽象为下图的模型CPU,内存以及I/O设备都由一条系统总线连接起来并通过总线与其他设备通信2. CPUCPU是计算机的大脑,它从内存中取出指令并执行。2.1 CPU的工作流程从内存中取出指令,对取出的指令进行解码,执行,CPU就是一直不断的重复这个过程。 图1.1C.

2021-11-04 17:33:55 229

原创 FLutter Dialog setState及 Dialog被输入框挡住的问题

1.FLutter Dialog setState使用StatefulBuilder组件,使用setState1方法管理Dialog状态showDialog( context: context, builder: (context) { return StatefulBuilder( builder: (BuildContext context1, void Function(void Function()) setState1) {

2021-09-09 16:55:49 730

原创 Pub failed to delete entry because it was in use by anothe

Pub failed to delete entry because it was in use by another process. This may be caused by a virus scanner or having a file in the directory open in another application. Error (1): Unable to ‘pub upgrade’ flutter tool. Retrying in five seconds…win 10 flut

2021-05-28 22:01:51 3066

原创 Exception in thread “main“ java.util.zip.ZipException: error in opening zip file

Flutter run报错Running Gradle task 'assembleDebug'...[!] Gradle threw an error while downloading artifacts from the network. Retrying to download...Exception in thread "main" java.util.zip.ZipException: error in opening zip file at java.util.zip.ZipFile.

2021-03-10 23:21:26 2802 2

原创 网站国际化思路

1 用户信息表数据库中每个用户都有自己的国家信息字段例如:此处nlcd为国家信息2 存储用户信息用户登录时,从数据库中查询该用户信息,将国家信息存入cookie中。3 数据分类(1) 业务数据:如用户的邮箱,用户的用户名。(2) 静态数据:一些在页面中不需要经常改动的数据,只做展示,一般不随业务变动。图中红线数据就是静态数据,这些静态数据都需要国际化绿线数据就是业务数据,业...

2020-01-10 17:22:01 614

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除