首页 > 其他分享 >上班(5)

上班(5)

时间:2024-09-27 11:52:29浏览次数:5  
标签:状态 nodeList remember Composable 上班 节点 Unit

1. content: @Composable ColumnScope.() -> Unit

ColumnScope,使得传入的参数可以使用Column的Modifier,从而在传入的composable里调整布局。

 

2. kotlin it和this的区别

 it指代lambda表达式的唯一变量,this指代当前对象   3. AlignmentArrangement Alignment控制布局,Arrangement控制组件间关系   4. Modifer.semantics(mergeDescendants = true) {} 将子节点合并为一个语义节点,便于talkback读出所有其信息。除此之外还可以合并子节点,改变clickable范围等。例如,我将父节点clickable的enable设为false,但没有处理子节点,composeTestRule.onNodeWithText(TITLE).assertIsNotEnabled()的测试就会失败。可以使用composeTestRule.onRoot().printToLog("LogName")来查看节点情况。   5. compose列表动态添加节点
class Model {
    private val _nodeList: MutableList<@Composable () -> Unit> = mutableStateListOf()
    val nodeList: List<@Composable () -> Unit> = _nodeList

    fun add(node: @Composable () -> Unit) {
        _nodeList.add(node)
    }
}

@Composable
fun NodeList(title: String?, model: Model) {
    Category(title = title) {
        Column(
            modifier =
                Modifier.fillMaxWidth(),
            verticalArrangement = Arrangement.spacedBy(2.dp)
        ) {
            for (node in model.nodeList) {
                node()
            }
        }
    }
}

 

6. mutableStateListOf

列表内容变化时,compose组件会更新

 

7. rememberSaveable 和 remember

var checked by rememberSaveable { mutableStateOf(false) }

  • rememberSaveable: 这个函数用于在配置更改(例如屏幕旋转)或进程死亡后保存状态。它使用一些策略来保存状态,例如将状态存储在 Bundle 中或持久化到磁盘。
  • mutableStateOf(false): 这创建了一个可观察的状态对象,其初始值为 falsechecked 变量会代理到这个状态对象,这意味着对 checked 的读写操作实际上是对状态对象的读写操作。
  • 用途: 适用于需要在配置更改后仍然保留的状态,例如 checkbox 的选中状态、文本框的内容等。

val model = remember { PreferenceGroupModel() }

  • remember: 这个函数用于在 Composable 函数的重组过程中记住一个对象。当 Composable 函数第一次执行时,remember 会执行 lambda 表达式并返回结果。在后续的重组中,remember 会直接返回之前记住的结果,而不会再次执行 lambda 表达式。
  • PreferenceGroupModel(): 这创建了一个 PreferenceGroupModel 类的实例。这个类可能包含一些状态和其他逻辑。
  • 用途: 适用于不需要在配置更改后保留的状态,例如 ViewModel、临时计算结果等。

—— GPT

标签:状态,nodeList,remember,Composable,上班,节点,Unit
From: https://www.cnblogs.com/capterlliar/p/18435374

相关文章

  • 实习生上班摸鱼刷题,被开除了!
    大家好,我是程序员鱼皮,之前分享过我们团队开发的程序员面试刷题工具-面试鸭,已经有10万多名同学在这里刷题了。我们通过分析近期的系统用量发现,每天的9-12点、14-18点,是刷题用户数的高峰:这不正好是工作时间么?!看来很多朋友都习惯工作摸鱼刷题啊。之前也有很多用户向我们反......
  • “这年头,只依赖上班,是赚不到钱的——揭秘如何利用AI开启赚钱新模式“
    苹果,在AI时代终于要有大动作了。反观国内华为,前段时间刚上线的新款平板MatePadAir也大放异彩,搭载AI助手,创新生产力。像我这写文案的时常灵感枯竭,打开电脑却迟迟下不了手…而华为小艺帮写功能只需要输入指令就能AI生成内容,直接解放大脑和双手!还有AI拼音联想功能,直接解决......
  • 上班(3)
    不想起新名字了(1.ComposeModifier修饰顺序开始用compose,发现padding加的位置不一样效果也不一样,大惊。官方视频讲得很好:传送门平常用的话就想象一个框,然后从外往里加东西就好。比如.padding.clip.background.padding,就是先加一圈padding,然后剪成圆角,再在剪完的图形里加个背景......
  • 可以不上班,但一定要学习!赚钱往往都是从你的一技之长得来的!AI赋予的时代
    如何在AI时代找到自己的搞钱新方向。ChatGPT火不是没有它的道理的。有人玩梗调戏它,有人担心被它取代。但你们有没有想过,其实AI可以更好的帮助我们搞钱的、自由的一个重要工具呢?没错,就在有些人还在担心饭碗被AI抢走的时候,已经有精明的人开始用AI赚钱了。今天大家分享一......
  • 你能接受上班的时候被监控吗?职业打工人说:能!
    今天在网上看到这个问题,我能接受上班的时候被监控吗?我能接受!为什么这么说呢,只要公司工资给的到位,监控不监控的我都无所谓!作为一个职场人,我对工作的态度始终是认真负责的。我相信,只要我专心致志地完成任务,无论是对于我个人的职业发展还是对公司整体目标的贡献,都是非常有益的......
  • 嵌入式入职上班第一天:读懂保护与解读保护
    摘要:作为一名嵌入式工程师,了解和掌握保护机制至关重要。本文将为大家介绍嵌入式系统中常见的保护机制,帮助新入职的嵌入式工程师快速上手。#正文:##一、引言嵌入式系统在各个领域都有广泛的应用,为了保证系统的稳定性和安全性,各种保护机制应运而生。作为一名嵌入式新入职的......
  • 程序员上班的适合夏天的靠垫求推荐我的椅子太硬了,求求
    重要的事说三遍!重要的事说三遍!重要的事说三遍!苏州的天气太热了,梅雨期间虽然凉快了一段时间,但是三伏天马上要来了,求程序员上班的适合夏天的靠垫求推荐我的椅子太硬了,求求苏州的天气太热了,梅雨期间虽然凉快了一段时间,但是三伏天马上要来了,求程序员上班的适合夏天的靠垫求推荐我......
  • 【日记】上班居然睡了一上午(230 字)
    正文昨天色到了很晚,早上没什么精神,于是睡了一个上午。在监控下面睡,只能说不愧是我。高中练就的无痕上课睡觉绝技居然在上班时也能派上用场。反洗钱系统今天卡到爆炸,这部分工作只能明天再做了。下午写了一篇文章。今天似乎也没做什么呢。晚上很想好好地在......
  • 新来的领导说,下周一上班前开发工具统一为:IntelliJ IDEA。
    新来的领导说,下周一上班前开发工具统一为:IntelliJIDEA。主要基于以下几点原因考虑:提高团队效率:使用统一的开发工具,如IntelliJIDEA,可以消除因不同工具的使用习惯、快捷键、调试方式等差异而导致的团队协作障碍。当所有开发者都在同一工具上工作时,代码审查、问题排查和知......
  • 上班就要装傻
    上个班,该装傻就装傻,你的责任心那么重,就是吃饱了撑得。你天天发现这问题,反应那问题。你以为领导心里没点数吗?很多团队都是草台班子,很多单位更是一地鸡毛。上班不是上学,不是所有问题都要解决。工作久了之后你就会发现,有一种解决问题的方法叫拖着!因为有些问题,拖着拖着问题就没了。......