1. compose slider
slider放在row里会默认占据一整行。此时,如果把icon放在slider左边,可以显示;如果放在右边,slider会把icon遮掉。解决方法是把slider放在Box里,给Box添加一个weight:
Box(Modifier.weight(1f)) {
Slider(
...
)
}
2. kotlin fileTreeWalk
在 Kotlin 中,fileTreeWalk
是一个扩展函数,用于遍历文件树,即递归地访问指定目录下的所有文件和子目录。它返回一个 Sequence<File>
,你可以使用 forEach
或其他操作来处理遍历到的每个文件。
—— GPT
3. git stash在 Git 中,
git stash
是一个用于临时保存工作目录和暂存区中未提交的更改的命令。它可以将当前的修改保存到一个称为stash的特殊区域,然后将工作目录和暂存区恢复到干净的状态。主要用途
- 切换分支: 当你正在一个分支上工作,但需要切换到另一个分支处理紧急任务时,可以使用
git stash
保存当前的修改,切换到其他分支,完成后再切换回来并使用git stash pop
恢复修改。 - 解决冲突: 在合并或变基时遇到冲突,可以使用
git stash
临时保存你的修改,解决冲突后再恢复修改。 - 清理工作区: 当你完成一部分工作,但不想立即提交,可以使用
git stash
保存修改,以便稍后继续工作或在其他分支上应用这些修改。
git stash
: 保存当前修改到一个新的储藏。git stash pop
: 恢复最近保存的储藏,并将储藏从列表中删除。
4. compose RoundedPolygon的使用
希望用RoundedPolygon创建一个带圆角的六边形图案,并使用clip将一个Box变成这个形状。
先创建一个RoundedPolygon,然后将它变成Shape,给clip裁剪:
val shape = remember { RoundedPolygon.star( numVerticesPerRadius = 6, innerRadius = 0.75f, rounding = CornerRounding(0.3f) ) } val clip = remember(shape) { RoundedPolygonShape(polygon = shape) }
关于RoundedPolygonShape:在官方文档提供的一个函数,可以根据自己需要更改,比如我希望旋转六边形30度,就加了matrix.rotateZ(30.0f):
class RoundedPolygonShape( private val polygon: RoundedPolygon, private var matrix: Matrix = Matrix() ) : Shape { private var path = Path() override fun createOutline( size: Size, layoutDirection: LayoutDirection, density: Density ): Outline { path.rewind() path = polygon.toPath().asComposePath() matrix.reset() matrix.scale(size.width / 2f, size.height / 2f) matrix.translate(1f, 1f) matrix.rotateZ(30.0f) path.transform(matrix) return Outline.Generic(path) } }
5. Android alternative resource
比如有时候需要提供多种语言,这时候要用到备用资源。此外如果多种语言共用一张图片,不必在每种资源内都添加这张图片,在默认选择处放一份就行了。