上班(4)

Posted on 2024-09-13 14:23  Capterlliar  阅读(8)  评论(0编辑  收藏  举报

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

比如有时候需要提供多种语言,这时候要用到备用资源。此外如果多种语言共用一张图片,不必在每种资源内都添加这张图片,在默认选择处放一份就行了。