- 博客(8)
- 收藏
- 关注
原创 Compose 学习界面架构 - 基础控件和布局
1、四个基础可组合项Text:用于显示文字,可通过 API 或 TextStyle 定制样式,用 AnnotatedString 实现同一文本内不同样式,搭配 Brush 可做渐变效果。Button:含 5 种类型、基础 Filled 通过 onClick 设置点击事件,且需嵌套 Text 实现文字显示,无单独 text 属性。TextField:分基于值(用 mutableStateOf)和基于状态(用 rememberTextFieldState)两种实现。Image。
2025-10-21 18:16:55
1768
原创 Compose 学习界面架构 - State 状态管理
如果状态是自定义数据类(比如 City(name: String, country: String)),rememberSaveable 无法自动保存,需要用以下三种方式:1、给数据类加 @Parcelize 注解@Parcelize// 用 rememberSaveable 保存// 定义 MapSaver:指定保存和恢复逻辑val nameKey = "city_name" // 键1val countryKey = "city_country" // 键2mapSaver(
2025-10-18 22:28:01
1882
原创 Compose 学习界面架构 - Side Effects
可组合项理想状态下应该 “无附带效应”。发送网络请求、保存数据到本地;显示 Snackbar、Toast 等临时提示;注册 / 取消生命周期监听、日志上报。重组可能频繁触发(比如状态快速变化时);重组顺序可能和首次执行不同;部分重组可能被 Compose 舍弃(比如还没执行完就触发新重组)。如果直接在可组合项里写这些操作,会导致重复请求、监听泄漏、状态混乱等问题。
2025-10-17 14:45:38
1902
原创 Compose 学习界面架构 - 生命周期
本文总结了Android Compose中可组合项的生命周期与优化要点。可组合项生命周期分为进入组合、重组和退出组合三个阶段,重组由状态变化触发。通过调用点和执行顺序区分实例,使用key避免列表变更导致的实例重建。性能优化方面,当输入参数未变且类型稳定时可跳过重组,@Stable注解可标记自定义稳定类型。核心在于理解组合树实例识别机制和重组优化条件,以提升Compose应用性能。
2025-10-16 15:27:36
664
原创 力扣142. 环形链表 II
昨天跟着Carl哥刷完链表的最后一章啦,今天早上睡醒写一遍笔记看看自己还能记住多少。每天除了上课也只能抽空跟Carl哥学一点学一点的,没想到能坚持到现在,数组和链表自己也算有基础,所以学起来并不是很费解,后面的树、图只有有一点概念而已,并没有上手写过,希望能慢慢掌握,然后像数组和链表一样自己手撕出来!
2023-09-24 11:17:20
84
1
原创 刷题 - 数组篇总结
以前做数组题的时候,思想并不打开,更多的是考虑暴力的算法,虽然也能解决问题,但是并不高效,经过代码随想录的学习,感觉自己大大的提升了对数组的掌控能力,特此记录一下心得。坚持循环的不变量,即每一次循环中,对于边界的处理,要坚持一开始自己定义的区间来执行。
2023-09-24 10:18:37
99
1
原创 力扣54. 螺旋矩阵
跟着Carl哥学完了数组篇,螺旋矩阵不涉及什么算法,但是很考验对代码的掌控力和逻辑把握,跟着卡哥学完以后,自己手撕出来这道题太有成就感了。在边界条件多的循环中,一定要先规定好一个原则,然后每次循环都按照这个原则走,才不会越写越乱,如果不按照固定规则来遍历,那就是一进循环深似海。
2023-09-17 16:33:31
140
1
原创 力扣904. 水果成篮
个人练习随记,代码参考了题解Link大佬的,在此记录一下自己的理解,以便后续回顾。滑动窗口果然是需要一个动态的想法,区间的定义和for循环代表的位置根据题目也各不相同,具体问题还需具体分析,
2023-09-16 15:43:32
288
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅