Rime/小狼豪/鼠须管 输入法配置记
Rime? Rime / 中州韵 是开源跨平台输入法框架,不同平台客户端不同。 mac:鼠须管 squirrel windows:小狼毫 weasel 优点就不多说了,强大的自定义配置,不流氓,无广告等等等。当然,强大就意味着,想要用好它不容易。希望像搜狗一样无脑安装的就别折腾了。 折腾之前请确保自
LeetCode279/127/126 - 用图建模
题目 传送门 给你一个整数 n ,返回 和为 n 的完全平方数的最少数量 。 完全平方数 是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9 和 16 都是完全平方数,而 3 和 11 不是。 示例 1: 输入:n = 12 输出:3 解释:12 = 4 +
LeetCode149 - 直线上最多的点数
题目 传送门 给定一组 X-Y 平面上的点,返回位于同一条直线上的最大点数。 例子: Input: points = [[1,1],[2,2],[3,3]] Output: 3 约束: 1 <= points.length <= 300 points[i].length == 2 -104 <= x
Jetpack Compose 笔记(7) - 与传统 View 交互
直到第七节才学到这个,但相信这是很多很多小伙伴最关心的问题。显然,我们不可能一下子把整个项目换成 Compose。退一步说,哪怕从头开始新项目,也无法保证所有依赖都是 Compose。所以 Compose 与传统 View 系统的交互非常重要。 嵌入显示 Viwe 中嵌入 Compose 乍一看这活
Jetpack Compose 笔记(6) - 硬核深入 Modifier
⚠️ 警告:这一节不是罗列各种 Modifier 的使用与效果,而是深入它们的原理,不适合快餐式学习。 只想学简单用法的建议看文档或随便一个免费的视频教程。 ⚠️ 警告:这一节非常硬核,我花了三天学习,所以不建议尝试短时间看完并理解。 本节源码参照 Compose 1.3.0-alpha02 回顾
Jetpack Compose 笔记(5) - 状态与 CompositionLocal
无状态与状态提升 从某种角度来说,Compose 组件是无状态的。这很好理解 —— Compose 的那些组件函数甚至都不会返回一个对象,哪有状态可言?对于传统 View,比如 TextView,可以通过 TextView.getText() 来获取其内部状态,当然,还有很多其他属性。那么 Comp
Jetpack Compose 笔记(4) - drivedStateOf
数据的转换 对于 Compose 中的数据,用 mutableStateOf() 包裹来实现监听刷新我们已经轻车熟路。那如果一个数据依赖于另一个或多个数据怎么办?这就用到 derivedStateOf(),它专门用于数据的转换,当上游数据发生变化时会自动刷新下游数据,进一步刷新 UI。有点类似 Li
Jetpack Compose 笔记(3) - 重组的性能风险
重组的性能问题 [第一节]({{< ref "JetpackCompose笔记(1).md" >}})就讲到,Compose 过程第一步是「组合」,当变量发生改变时,可能触发「重组」。所谓重组,就是要重新执行我们写的 Compose 代码,为此 Compose 对代码进行了包装。同时为了优化性能,包
Jetpack Compose 笔记(2) - remember
[上一节]({{< ref "JetpackCompose笔记(1).md" >}})总结了 Compose 中变量的三种写法: val name = mutableStateOf("Bob") // 1 val name by mutableStateOf("Bob")
Jetpack Compose 笔记(1) - mutableStateOf
在 Compose 中显示数据,通常我们要将其存储在变量中,并用 mutableStateOf 包裹,以便实现自动监听与更新。这一步有下列三种写法: val name = mutableStateOf("Bob") // 1 val name by mutableStat