上班(3)

Posted on 2024-09-05 15:42  Capterlliar  阅读(8)  评论(0编辑  收藏  举报

不想起新名字了(

1. Compose Modifier修饰顺序

开始用compose,发现padding加的位置不一样效果也不一样,大惊。官方视频讲得很好:传送门

平常用的话就想象一个框,然后从外往里加东西就好。比如.padding.clip.background.padding,就是先加一圈padding,然后剪成圆角,再在剪完的图形里加个背景,最后加一圈内边距。范围越来越小,像这样。

2. kotlin三目表达式

突然想用c里的 ?: 但kotlin里没有,只能 val max = if (a > b) a else b 

3. Modifier.toggleable()

可以自定义clickable的东西!

4. it的作用

Kotlin 的 lambda 表达式允许在只有一个参数的情况下,使用 it 隐式地引用该参数。比如(checked: Boolean) -> Unit)中checked就可以用it代替。

5. android app切换页面状态丢失

val modifier = remember(checked) {
        if (checked != null) {
            Modifier.toggleable(
              ...
            )
        } else Modifier

例如这段代码,如果从其他页面切换回来,composable重组导致checked为null,Modifier修饰的这个东西就点不了了!

6. amend commit

出于一些原因攒了一堆commit没push,现在需要改其中一个。方法:

git rebase -i HEAD~{$num}        //num为以最近commit为1,数到要改的commit的数字

(pick -> edit)                           //然后它会跳出一个界面,列了从要改到现在所有的commit,把要改的commit前的pick改成edit

(进行操作,如果选了多个commit会让你一个一个操作)

git add .

git rebase –continue

7. LaunchedEffect
composable会自己重组,每次重组都会执行composable的内容。如果只希望某些语句被执行一次,那么就将它用LaunchedEffect包起来。可以向LaunchedEffect中传参数,意思是这个参数变的时候重新计算。和remember类似,据我观察区别是LaunchedEffect没有返回值。