我最近更新了 Android studio,和往常一样,它坏了。每当我尝试启动模拟器时,Android Studio 就会永远卡在“正在连接模拟器”屏幕中。
我尝试过的事情:
我使用的是 M1 Macbook 并运行 Android Studio Bumblebee 2021.1.1 Patch 3
编辑:我也尝试过切换到冷启动
我有一个 Jetpack Compose Text() 元素,我想像这样用黑色勾勒出轮廓
.
有人知道怎么做吗?我试过使用 border() 修饰符,但这只是在包含文本的矩形区域周围添加了一个边框。我也试过覆盖两个文本元素,但这也不太奏效。
android android-jetpack-compose android-jetpack-compose-text
我目前有一些与此类似的 Jetpack Compose 代码:
val filteredList: List<String> = someList.filter { // some condition }
someState.value = if(filteredList.isNotEmpty()) filteredList else null
Run Code Online (Sandbox Code Playgroud)
我使用某些条件过滤列表,然后将某些状态设置为等于该过滤列表。但是,如果过滤列表为空,我希望将状态设置为空。
这段代码可以工作,但我想知道在 Kotlin 中是否有更简洁的方法来做到这一点?我尝试过使用作用域函数,但我无法弄清楚当过滤列表为空时如何返回空值。
我有一段文本,我想在单击时调用函数 X。我使用 clickable 修饰符并在 onClick 方法中调用函数 X 来执行此操作。然而,函数 X 使用 Context。
为了解决这个问题,我使用下面概述的方法:
@Composable
fun ClickableText() {
val context = LocalContext.current
Text("Click me!", Modifier.clickable { functionX(context) })
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,这种方法有什么问题吗?它似乎有效,但存储对 LocalContext.current 的本地引用似乎有点棘手。如果 Context 在 UI 组合和 onClick 方法调用之间的时间发生变化,我认为这可能会导致一些问题。有没有更好的方法在不可组合的回调函数中获取 Context?