Administrator
Administrator
Published on 2025-03-26 / 23 Visits
0
0

开发疑难解决方法(合集)

更新compose版本

仓库地址:https://maven.google.com/web/index.html?q=androidx.compose.#androidx.compose.ui:ui-android:1.8.1

查看最新版本并复制Gradle Kotlin DSL,如:implementation("androidx.compose.ui:ui-android:1.8.1")

放入项目的app/build.gradle.kts的dependencies中,然后Sync,所有compose依赖的库版本都会更新,如fundation、runtime等

具有onClick事件的元素取消自身消费事件的行为

将onClick设为null,点击Radio和Text时都交给Row的clickable来处理事件(否则只有点击Text时Row会接收到点击事件,RadioButton即使传递空lambda也会被视为消费了事件)

如果事件类型是()->Unit就不允许传null,必须是(()->Unit)?才允许为null值

                Row(modifier = Modifier.clickable {
                    tileMode = i
                }) {
                    RadioButton(selected = tileMode == i, onClick = null)
                    Text(text = tileModeLabel[i])
                }

dp转px

10.dp.toPx() //不支持

var pxVal = with(LocalDensity.current) { 10.dp.toPx() }

根据屏幕宽度计算元素宽高

    val screenWidth = LocalConfiguration.current.screenWidthDp
    val firstElSize = screenWidth*0.50

    Box(modifier = Modifier.width(firstElSize.dp).height(firstElSize.dp)) //正方形元素


Comment