08 2021 档案
kotlin高级特性
摘要:解构: class User(var age:Int, val name:String){ operator fun component1() = age operator fun component2() = name } fun main() { val (age, name) = User(1
使用kotlin的inline前后变化
摘要:fun HighFunc(func1: () -> String, func2: () -> String): String { return func1() + func2() } fun main() { print(HighFunc(func1 = { println("func1") "fu
kotlin 的lambda闭包
摘要:lambda闭包会被编译成 Java中的匿名内部类。定义方法是 val lambda_name = {para1, para2 -> .... .... } 根据参数数量不同,实现的接口也会不一样: 一个参数的话,实现的时候就会实现Function1这个接口。其他类推。 例如:kotlin代码: T
把一个数最右边那一位1弄出来
摘要:任何一个数取反加1之后, 第一个1至右 的位数上的数字都相同 然后再和原数 相与, 把第一个1保留, 其他变为0 int result = num & (~num+1);
渐变button的实现思路
摘要:val horizontalGradient = Brush.horizontalGradient( colors = listOf(MaterialTheme.colors.primary, MaterialTheme.colors.primaryVariant), 0f, 100f ) val
Android Room与java.lang.NullPointerException与observeAsState
摘要:val itemList: List<Message>? by messageViewModel.messageList.observeAsState() MessageWindow(itemList = itemList!!) 报指针null错误的原因就是observeAsState函数的问题,
学习记录
摘要:2021.8.19 1:协程的代码效率不一定比多线程高,因为协程内部就是多线程(?) 协程可以使异步的代码写成同步,便捷易懂。 传统方式弊端,异步线程请求服务器,取得数据利用handler发送数据给主线程 对于有suspend的函数,自动开启异步线程 main主线程{ suspend函数(自动切出去
remember and MutableState<>()
摘要:remember gives a composable function memory. A value computed by remember will be stored in the composition tree, and only be recomputed if the keys t
Compose的state
摘要:开始: 目标是在一个text下面设置一个输入框,随着输入框变化,text也跟着变化。于是我写一个Compose function: @Composable fun TextAndTextField() { Column(modifier = Modifier.padding(16.dp)) { Te
Jetpack Compose的Layouts
摘要:一:简介 您将学习如何使用Compose的最高层次的UI抽象,Material Design,以及低级的可组合工具,如Layout,它允许您测量并在屏幕上放置元素。 二:Modifier 1:设置文本的透明度 CompositionLocalProvider(LocalContentAlpha pr
compose 基础
摘要:确保您选择的最小sdkversion至少是API级别21,这是Compose支持的最小API。 @Composable fun Greeting(name: String) { Surface(color = Color.Yellow) { Text (text = "Hello $name!")