- 博客(76)
- 收藏
- 关注
原创 Flutter for OpenHarmony 实战:AspectRatio/Center/Wrap等布局组件实用技巧
摘要 本文介绍了Flutter中三种实用的布局组件:AspectRatio用于设置固定宽高比,保持图片或卡片的比例;Center实现简单居中对齐,支持宽高因子调整;Wrap提供自动换行布局,适用于标签流式排列。通过代码示例展示了这些组件的核心用法和实际应用场景,帮助开发者解决常见的布局问题。
2026-01-28 00:33:53
402
原创 Flutter for OpenHarmony 实战:ListView与GridView滚动列表完全指南
本文深入讲解了Flutter中ListView和GridView的使用方法。ListView部分介绍了基础列表、builder优化、分隔符列表、水平列表和自定义列表的实现;GridView部分展示了count和extent两种网格布局方式。文章通过代码示例和效果图,详细演示了如何构建高性能的滚动列表组件,特别强调了ListView.builder在大量数据时的性能优势。这些滚动组件是Flutter应用开发中的核心控件,掌握它们的使用技巧对提升应用流畅度至关重要。
2026-01-28 00:18:24
436
原创 Flutter for OpenHarmony 实战:Stack与Positioned绝对布局技巧
摘要 Stack和Positioned是Flutter中实现复杂布局的重要工具。Stack允许子Widget堆叠显示,通过fit属性控制子Widget尺寸(loose/expand/passthrough),alignment属性设置默认对齐方式。Positioned用于在Stack内进行绝对定位,支持left/right/top/bottom等属性组合定位。两者配合使用可以轻松实现浮动按钮、对话框等常见UI效果,是Flutter布局系统中的核心组件之一。
2026-01-27 23:58:47
188
原创 Flutter for OpenHarmony 实战:Container与Padding布局完全指南
Flutter布局基础:Container与Padding使用指南 摘要:本文详细介绍了Flutter中Container和Padding两个核心布局组件的使用方法。Container作为多功能容器,支持设置尺寸、颜色、内边距(padding)、外边距(margin)以及各种装饰效果(decoration)。Padding则专门用于设置内边距,可以通过EdgeInsets灵活控制各方向间距。文章通过代码示例展示了Container的基础用法、装饰效果实现以及Padding的不同配置方式,帮助开发者掌握这两种
2026-01-27 23:35:45
411
原创 Flutter for OpenHarmony 实战:双控制系统实现(按钮+键盘)
本文介绍了在Flutter中实现双控制系统(屏幕按钮+键盘控制)的实战方法。主要内容包括:1)采用十字键布局设计触控按钮,包含圆形按钮样式和点击事件处理;2)使用KeyboardListener组件监听键盘事件,包括焦点管理和按键类型处理;3)实现WASD和方向键双键位映射;4)添加空格键暂停和R键重新开始等辅助功能。该方案同时支持移动端触控和PC端键盘操作,提升了游戏交互体验的灵活性。
2026-01-27 14:37:15
473
2
原创 Flutter for OpenHarmony 实战:CustomPainter游戏画面渲染详解
本文介绍了在Flutter中开发贪吃蛇游戏时从GridView到CustomPainter的渲染方案演进。最初使用GridView.builder存在格子太小、margin占用过多的问题,导致蛇和食物几乎不可见。CustomPainter方案通过Canvas直接绘制,实现了更好的性能和灵活性。文章详细讲解了CustomPainter的基础用法,包括网格线绘制、蛇身圆角处理和蛇头眼睛绘制技巧,并提供了性能优化建议。这种方案特别适合需要频繁重绘和像素级控制的游戏场景。
2026-01-27 14:26:09
545
原创 Flutter for OpenHarmony 实战:食物生成算法与难度递增系统
本文详细介绍了Flutter贪吃蛇游戏中食物生成与难度系统的实现。通过时间戳生成随机坐标,采用递归检测避免食物与蛇身重叠。得分系统设定每个食物加10分,并通过setState实现UI实时更新。难度递增机制采用线性速度递减策略,从初始200ms/次逐步加速至80ms/次,在保持游戏可玩性的同时增加挑战性。文章包含完整的算法解析、边界验证和性能考量,并提供了完整的Dart代码实现,展示了如何构建一个具有动态难度调节功能的贪吃蛇游戏核心系统。
2026-01-27 14:05:04
516
原创 Flutter for OpenHarmony 实战:碰撞检测算法与游戏结束处理
本文详细讲解了贪吃蛇游戏中的碰撞检测机制,主要包括墙壁碰撞和自身碰撞两种类型。文章分析了边界判断算法(x/y坐标越界检测)和蛇身遍历算法(O(n)时间复杂度),并提供了完整的代码实现。碰撞响应机制方面,介绍了游戏结束状态设置、定时器清理流程和UI状态更新逻辑。通过清晰的示例代码和示意图,展示了碰撞检测的具体实现方法,包括墙壁边界判断条件、蛇身坐标比较等关键细节,为游戏开发中的碰撞处理提供了实用参考。
2026-01-26 13:12:54
555
原创 Flutter for OpenHarmony 实战:按钮类 Widget 完全指南
Flutter 按钮组件完全指南 摘要 本文全面介绍 Flutter 中各类按钮组件的使用方法,重点讲解 ElevatedButton、TextButton 和 OutlinedButton 的核心功能。内容涵盖基础用法、样式自定义(通过 ButtonStyle 和 styleFrom)、状态管理(包括禁用、加载、悬停等状态)以及最佳实践。文章详细解析了按钮构造参数、MaterialState 状态系统,并提供了加载状态管理等实用示例代码,帮助开发者掌握 Flutter 按钮系统的完整知识体系。 核心要点:
2026-01-25 17:58:52
439
原创 OpenHarmony 实战中的 Flutter:深入理解 Widget 核心概念与底层原理
摘要 本文深入解析Flutter框架中Widget的核心机制与底层原理。Widget作为Flutter的UI构建基础,其不可变特性、三棵树架构(Widget-Element-RenderObject)和BuildContext的使用是开发高性能应用的关键。文章从源码角度剖析Widget的设计理念,详细讲解StatelessWidget、StatefulWidget、InheritedWidget和RenderObjectWidget四大分类及其适用场景,并通过代码示例展示Widget的生命周期管理、状态更新
2026-01-25 16:53:01
482
1
原创 Flutter for OpenHarmony实战:从零实现俄罗斯方块(三)交互控制与事件处理
摘要 本文是Flutter开发俄罗斯方块游戏的第三篇教程,重点讲解游戏交互控制的实现方法。主要内容包括:使用RawKeyboardListener监听键盘事件并映射到游戏操作;设计触摸屏控制按钮的布局和交互反馈;实现长按连续操作功能;以及游戏状态管理(暂停、结束)的实现。文章详细介绍了Flutter事件处理的完整流程,包括焦点管理(FocusNode)的使用技巧,为开发交互式游戏应用提供了实用参考。 关键词:Flutter、事件处理、RawKeyboardListener、FocusNode、游戏控制、交互
2026-01-25 15:20:26
783
15
原创 Flutter for OpenHarmony实战:从零实现俄罗斯方块(二)CustomPaint绘制游戏画面
Flutter俄罗斯方块游戏绘制实现 本文是Flutter开发俄罗斯方块系列的第二篇,重点介绍如何使用CustomPaint实现游戏画面的绘制。文章从CustomPaint基础概念入手,详细讲解了游戏棋盘、下落方块、预览区域的绘制方法,并分享了性能优化技巧。 核心内容: CustomPaint与普通Widget的对比及优势分析 游戏棋盘背景与网格的绘制实现 动态方块与固定方块的渲染逻辑 预览区域的自定义绘制方案 绘制性能优化策略(重绘控制、对象缓存) 技术亮点: 使用Canvas直接绘制提高渲染性能 实现响
2026-01-25 15:15:34
525
原创 Flutter for OpenHarmony实战:从零实现俄罗斯方块(一)数据结构与核心算法
本文介绍了使用Flutter开发俄罗斯方块游戏的数据结构与核心算法实现。主要内容包括:采用二维数组表示7种方块形状和10×20的游戏棋盘;详细讲解了碰撞检测算法,包括边界检查和方块重叠判断;实现了方块移动和旋转的逻辑。文章提供了完整的代码示例,展示了如何用0表示空格、1-7表示不同颜色方块的数据结构设计,以及颜色映射方法。这是系列教程的第一篇,后续将介绍绘制技术和交互控制等内容,为开发OpenHarmony平台上的俄罗斯方块游戏奠定基础。
2026-01-25 15:08:31
822
原创 LeetCode100天Day16-跳跃游戏II与H指数
摘要:本文解析了LeetCode中的两道算法题——"跳跃游戏II"和"H指数"。"跳跃游戏II"采用贪心策略,通过维护当前可达边界和最优起跳点来寻找最小跳跃次数,时间复杂度为O(n²)。"H指数"通过排序或计数统计寻找满足条件的最大h值。文章详细介绍了算法思路、代码实现及复杂度分析,并提供了优化建议(如BFS贪心优化)和示例图解,帮助读者掌握贪心算法和排序统计的应用技巧。
2026-01-22 22:35:22
499
4
原创 Flutter for OpenHarmony 实战:Dart异步编程基础Future与async-await详解
本文深入讲解Dart异步编程中的Future和async-await机制。首先对比了同步与异步代码的执行差异,介绍了Dart的事件循环模型。然后详细解析Future的创建方式、then回调链、辅助方法及超时处理。最后重点讲解了async函数和await表达式的使用技巧,包括顺序执行与并行执行的实现方式。通过代码示例展示了异步编程在Flutter应用中的实际应用场景,帮助开发者理解如何避免UI卡顿并提高程序响应性。
2026-01-22 22:32:24
496
1
原创 Flutter for OpenHarmony 实战:Dart类与面向对象编程
本文深入探讨了Dart语言的面向对象编程特性。Dart作为完全面向对象的语言,其核心概念包括类与对象、继承与多态、抽象类与接口。文章详细介绍了类的定义、多种构造函数形式、空安全处理、操作符重载等基础语法,并通过实例演示了继承、方法重写、协变等高级特性。对于有Java经验的开发者,这些概念将更易理解。文中包含大量可运行代码示例,展示了Dart面向对象编程的实际应用,帮助开发者编写更有组织性和可维护性的代码。
2026-01-22 21:44:46
1232
1
原创 Flutter for OpenHarmony 实战:Dart函数与闭包完全指南
Dart函数与闭包机制解析 本文详细介绍了Dart语言中的函数特性和闭包机制。主要内容包括:1)函数定义的基本语法、函数类型和高阶函数;2)参数类型的四种形式(必需参数、可选位置参数、可选命名参数、required必选命名参数);3)箭头函数和匿名函数的用法;4)闭包的词法作用域和变量捕获特性。通过丰富的代码示例,展示了Dart函数式编程的强大能力,特别是闭包如何捕获外部变量并保持状态,这些特性对于编写优雅的Flutter应用代码至关重要。
2026-01-22 21:22:42
755
1
原创 Flutter for OpenHarmony 实战:Dart变量与数据类型详解
本文深入讲解了Dart语言中的变量声明和数据类型系统。主要内容包括:1)变量声明方式(var、final、const、late、dynamic的区别与用法);2)基本数据类型(数值、字符串、布尔、Symbol);3)集合类型(List、Set、Map的操作方法);4)类型转换与判断。文章通过代码示例详细展示了Dart类型系统既安全又灵活的特性,强调了类型推导和强类型检查的优势,为Flutter开发打下坚实基础。
2026-01-22 20:06:32
603
1
原创 LeetCode100天Day15-买卖股票II与跳跃游戏
本文解析了LeetCode两道经典题目:买卖股票II和跳跃游戏。买卖股票问题采用贪心算法,通过收集所有正利润实现最大收益;跳跃游戏则运用逆向思维,从终点反推判断可达性。文章详细讲解了两种解题思路、代码实现及复杂度分析,并通过示例演示执行流程,帮助读者掌握贪心策略和逆向推导技巧。
2026-01-21 18:09:55
694
9
原创 Axure day2 基础教程完整指南
Axure 9 基础教程摘要 Axure RP 9 是一款专业的原型设计工具,广泛应用于产品设计和交互开发。本教程系统介绍了 Axure 9 的核心功能,包括:软件安装与界面布局、基础元件(矩形、文本、图片、输入框等)的使用技巧、交互设计三要素(事件、动作、目标)以及常用交互事件(鼠标、键盘、页面)和动作(导航、元件操作、动画效果)。教程还提供了按钮跳转等实战案例,帮助读者快速掌握从简单线框图到复杂交互原型的制作方法,适合产品经理、UX/UI设计师学习使用。
2026-01-21 18:08:38
809
1
原创 LeetCode100天Day14-轮转数组与买卖股票最佳时机
本文解析了LeetCode两道经典数组题目。"轮转数组"通过克隆数组和索引映射实现元素旋转,使用公式(n+i-k%n)%n计算新位置。"买卖股票最佳时机"采用暴力搜索法,双重循环比较所有买卖组合找出最大利润。文章详细讲解了算法思路、代码实现和复杂度分析,并提供了优化建议,帮助读者掌握数组操作和最优解搜索的基本技巧。
2026-01-18 18:29:08
559
1
原创 【学习笔记】axureDay1学习:跟着黑马产品经理从思维重塑到逻辑构建的“0到1”蜕变
《产品经理入门避坑指南:从"CEO学徒"到逻辑思维者》 本文记录了产品经理初学者的关键认知转变。核心收获包括:1)角色重塑,PM是信息路由器而非传话筒;2)需求过滤四步法,学会识别伪需求;3)业务流程与功能流程的本质区别,掌握开发视角的流程图绘制要点;4)原型设计以逻辑为先,低保真优于高保真。特别强调流程图必须包含判断节点和异常处理闭环,避免被开发"灵魂拷问"。文章通过"大象装冰箱"等生动案例,揭示了产品经理从用户思维到系统思维的转变路径,为新手提
2026-01-18 18:28:06
706
42
原创 智纺云ERP开发实战
本文介绍了一个基于Spring Boot和React的纺织品ERP管理系统全栈开发实践。系统采用前后端分离架构,后端使用Spring Boot+MyBatis+MySQL技术栈,前端采用React+Tailwind CSS,针对纺织行业特有的卷级库存管理、质检评分等需求进行了深度定制。文章详细阐述了项目背景、核心需求、技术选型、系统架构设计以及用户认证等关键模块的实现方案,包括JWT认证机制、RBAC权限控制等核心技术要点,为纺织行业信息化建设提供了完整的解决方案参考。
2026-01-16 23:03:21
1122
5
原创 LeetCode100天Day13-移除元素与多数元素
本文解析了两道LeetCode数组题目:1. 使用双指针原地移除指定元素,通过快慢指针实现高效元素过滤;2. 通过排序和计数查找出现次数超过半数的元素。两种方法均以O(n)时间复杂度和O(1)空间复杂度解决问题,适合处理大规模数据。
2026-01-16 22:14:34
627
原创 LeetCode100天Day12-删除重复项与删除重复项II
摘要:本文解析LeetCode两道数组去重题目,使用双指针实现原地修改。第一题"删除有序数组中的重复项"要求每个元素只出现一次,通过快慢指针比较相邻元素实现去重。第二题"删除有序数组中的重复项II"允许元素最多出现两次,通过检查连续三个相同元素并进行移动处理。两种解法时间复杂度均为O(n),空间复杂度O(1),适用于有序数组的原地去重场景。
2026-01-09 16:06:42
1072
6
原创 LeetCode100天Day11-两数之和与合并两个有序数组
摘要:本文解析LeetCode两道数组经典题目。"两数之和"采用暴力解法,通过双重循环遍历数组寻找满足条件的元素对;"合并两个有序数组"使用双指针技巧,从后向前合并两个已排序数组。两题分别展示了数组基础操作和高效合并策略,适合算法初学者掌握数组处理的基本方法。
2026-01-03 10:15:24
773
10
原创 LeetCode100天Day10-单词规律与同构字符串
本文解析了LeetCode中"单词规律"和"同构字符串"两道题目,重点介绍了双向映射的解题思路。通过建立字符与单词/字符之间的双向哈希映射,确保一一对应关系不被破坏。文章详细讲解了算法实现步骤,包括字符串分割、长度检查、映射冲突检测等关键环节,并通过示例演示了代码执行流程。最后分析了算法的时间复杂度为O(n),空间复杂度为O(n)。该解法适用于需要严格匹配模式的字符串问题,是处理字符映射类题目的典型方法。
2026-01-03 10:14:08
602
1
原创 LeetCode100天Day9-无重复字符的最长子串与赎金信
本文解析LeetCode两道字符串题目:1. "无重复字符的最长子串"使用滑动窗口算法,通过HashMap记录字符位置,动态调整窗口边界以获取最长无重复子串;2. "赎金信"采用计数数组统计字符频率,通过比较两个字符串的字符分布判断可行性。两题分别展示了字符串处理的两种高效技巧:滑动窗口和频率统计,适用于不同场景的字符串操作需求。
2026-01-02 12:12:26
655
6
原创 LeetCode100天Day8-缺失数字与只出现一次的数字
本文解析了LeetCode中两道查找类题目:缺失数字和只出现一次的数字。对于缺失数字问题,通过排序后逐个比较索引与元素值来定位缺失项;对于只出现一次的数字,利用排序后相同元素相邻的特性,通过奇数索引检查相邻元素是否匹配来找出唯一项。两种解法都巧妙运用了排序优化查找过程,时间复杂度均为O(n log n),空间复杂度O(1)。文章详细介绍了算法思路、代码实现及执行流程,帮助读者掌握排序在查找问题中的应用技巧。
2026-01-02 12:11:19
617
1
原创 LeetCode100天Day7-移动零与搜索插入位置
本文解析了LeetCode两道数组题目:1) 移动零 - 通过前移非零元素并末尾补零实现原地操作,时间复杂度O(n²);2) 搜索插入位置 - 线性遍历查找首个≥target的位置或数组末尾,时间复杂度O(n)。两题均展示了数组基础操作技巧,包括元素移位、边界处理和线性查找。
2026-01-01 15:54:12
1069
6
原创 LeetCode100天Day6-回文数与加一
本文解析了两道LeetCode基础题目:回文数判断和数字加一操作。对于回文数问题,采用字符串转换和双指针法进行比较;加一问题则通过数组转字符串、整数运算再转回数组的方式解决。两种方法都充分利用了数字与字符串之间的转换特性,提供了清晰的解题思路和代码实现。文章详细展示了每道题的执行流程、边界条件处理以及复杂度分析,帮助读者掌握基础数字处理与数组操作的核心技巧。
2026-01-01 15:53:01
641
4
原创 一起养小猫2025年度总结 | 破局与生长:从零开始到击败95%的创作者
2025年是我技术创作爆发的一年,从10月开始高频输出,累计发表41篇原创文章,获得17枚勋章,文章质量击败全国95.77%的作者。核心成果包括:5大技术专栏构建完整知识体系,其中Java数据结构与算法专栏最硬核;爆款文章如高木同学GalGame开发指南阅读量达3223次;特别感谢引路人"过度思考者"的启发。这一年证明了坚持原创与技术深耕的价值,用代码书写成长,在AI时代保持思考的深度。
2025-12-31 15:20:28
2627
63
原创 为了让朋友圈照片不糊,我怒写200行Python代码,搞定了无损九宫格切图!
本文介绍了一款针对朋友圈九宫格需求开发的Python桌面切图工具,解决了现有在线工具的三大痛点:画质压缩、边缘像素丢失和正方形适配问题。文章详细解析了开发过程中的关键技术点,包括使用PIL库处理高分辨率图片的DPI保留问题,通过坐标累加算法解决浮点数取整导致的像素裁切误差,以及创新的智能正方形裁剪功能来完美适配微信朋友圈显示。工具采用Tkinter+ttkbootstrap实现轻量级GUI界面,具备无损切割、智能预览等特色功能,并提供了完整的开源代码实现方案。
2025-12-30 23:48:19
1095
25
原创 圣诞节用Python送你一棵会动的圣诞树去给喜欢的人炫耀吧
这篇文章介绍了如何用Python创建一个会"生长"的圣诞树弹窗程序。作者通过tkinter库创建窗口,配合多线程技术实现弹窗动画效果。程序首先计算圣诞树各层窗口的坐标位置,包括树叶、树干和装饰品,然后逐个弹出带有祝福语的彩色窗口,最终在屏幕上拼成一颗完整的圣诞树。代码包含自动缩放功能适应不同屏幕尺寸,并提供了随机祝福语和彩色装饰效果,适合作为圣诞节的小惊喜送给喜欢的人。
2025-12-22 23:44:51
981
15
原创 LeetCode100天Day5-最小长度子数组与三数之和
本文解析了LeetCode两道经典数组题目:"长度最小的子数组"和"三数之和"。对于第一题,从暴力解法入手,详细分析了O(n²)的实现过程,并强调了暴力解法在算法学习中的重要性。第二题采用排序+双指针的优化策略,重点讲解如何通过排序避免重复解,并给出了完整的Java实现代码。两题都包含复杂度分析和边界情况处理,帮助读者深入理解数组问题的核心解法。通过对比暴力与优化解法,展现了算法优化的思路演进过程。
2025-12-22 22:49:06
650
4
原创 冬至特别篇:陈奕迅都说“差不多冬至一早一晚还是有雨“,我开发的天气预报系统如何精准预测?
本文介绍了一个基于jQuery AJAX和高德地图API开发的天气预报系统。系统灵感来源于陈奕迅《葡萄成熟时》歌词描述的冬至天气变化,旨在为用户提供精准的天气预测。项目采用三层架构设计,包含用户界面层(HTML5+CSS3+jQuery)、业务逻辑层(天气数据获取、主题切换、留言管理)和数据服务层(高德天气API+LocalStorage)。系统实现了实时天气显示、三天预报、10个城市快速切换、4种主题适配和用户留言功能,采用响应式设计确保移动端体验。通过jQuery简化DOM操作和AJAX调用,结合高德地
2025-12-21 20:50:23
944
3
原创 《Java数据结构与算法》第四篇(四):二叉树的高级操作查找与删除实现详解
摘要: 本文系统讲解了二叉树查找与删除操作的实现方法。详细分析了递归与非递归查找算法的差异(时间复杂度O(n),空间复杂度O(h)),重点剖析了删除操作的四种情况处理(叶子节点、单左/右子节点、双子树节点)。通过完整的Java代码示例和图解说明,帮助读者掌握二叉树核心操作的关键技术,为学习更复杂树结构奠定基础。文章还对比了不同实现方式的优缺点,并提供了性能优化建议。
2025-12-21 18:34:01
982
2
原创 LeetCode100天Day4-盛最多水的容器与两数之和II
双指针算法精要解析 本文通过LeetCode两道经典题目详解双指针算法: 盛最多水的容器:使用对撞指针,每次移动较短线段指针,将O(n²)暴力解法优化至O(n),核心在于容积计算与贪心策略。 两数之和II:利用有序数组特性,通过调整左右指针位置快速定位目标组合,相比暴力搜索显著提升效率。 算法要点: 适用于有序数组 典型时间复杂度O(n) 空间复杂度O(1) 核心思想:通过指针移动排除不可能的解空间 这两题完美展示了双指针在优化搜索问题中的强大威力,是算法学习必备技能。
2025-12-21 14:33:21
1024
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅