标签: android-jetpack-compose-modifier

预览 java.lang.NoSuchMethodError: androidx.compose.foundation.layout.SizeKt.fillMaxWidth$default

我开始将代码迁移到 Compose,但遇到了 @Preview 问题。例如,当我在modifier.fillMaxWidth()没有默认参数“fraction = 1f”的情况下使用时,我遇到渲染问题

java.lang.NoSuchMethodError: 'androidx.compose.ui.Modifier androidx.compose.foundation.layout.SizeKt.fillMaxWidth$default(androidx.compose.ui.Modifier, java.lang.Float, int, java.lang.Object) '

或使用不带底部参数的填充

.padding(
    top = dimensionResource(id = R.dimen._4sdp),
    start = dimensionResource(id = R.dimen._16sdp),
    end = dimensionResource(id = R.dimen._16sdp)
)
Run Code Online (Sandbox Code Playgroud)

java.lang.NoSuchMethodError: 'androidx.compose.ui.Modifier androidx.compose.foundation.layout.PaddingKt.padding-qDBjuR0$default(androidx.compose.ui.Modifier, androidx.compose.ui.unit.Dp, androidx. compose.ui.unit.Dp、androidx.compose.ui.unit.Dp、androidx.compose.ui.unit.Dp、int、java.lang.Object)'

这是我使用的代码

@Composable
fun Info(
    modifier: Modifier = Modifier,
    step: String,
    stepInfo: String,
) {
    Column(modifier = modifier.fillMaxWidth(fraction = 1f)) {
        Text(
            text = step,
            modifier = Modifier
                .background(
                    color = colorResource(id = R.color.color_on_background_variant3),
                    shape = RoundedCornerShape(90)
                )
                .size(dimensionResource(id = R.dimen._28sdp))
                .padding(dimensionResource(id …
Run Code Online (Sandbox Code Playgroud)

android android-jetpack-compose android-jetpack-compose-preview android-jetpack-compose-modifier

6
推荐指数
1
解决办法
1019
查看次数

将两个惰性滚动条一起滚动

这个问题以前已经被问过,但以不同的形式,关于一些特定的用例,到目前为止还没有答案。我终于让它工作了,所以我在这里分享这个,但是这不应该被标记为重复,因为前面的所有问题都指定了特定的东西,比如Columnswith scrollable Modifiers, or LazyRows,但这将解决一般的所有问题,我的意思是所有惰性滚动器,甚至希望甚至是可滚动的容器。我将发布答案,这只是我希望与社区分享的一段知识,当然,欢迎任何改进。

android state android-jetpack-compose android-jetpack-compose-list android-jetpack-compose-modifier

2
推荐指数
1
解决办法
2423
查看次数

为什么参数值相同的 requiredSizeIn 与 requiredWidthIn + requiredHeightIn 不一样?

我有下面的代码

    LazyColumn(
        contentPadding = PaddingValues(all = 64.dp),
        verticalArrangement = Arrangement.spacedBy(16.dp),
    ) {
        item {
            Box(
                modifier = Modifier
                    .width(200.dp)
                    .height(200.dp)
                    .border(BorderStroke(2.dp, Color.Green))
            ) {
                Box(modifier = Modifier
                    .fillMaxSize()
                    .sizeIn(100.dp, 200.dp)
                    .requiredWidthIn(150.dp, 180.dp)
                    .requiredHeightIn(150.dp, 180.dp)
                    .border(BorderStroke(3.dp, Color.Red))
                )
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

结果正如预期的那样。

在此输入图像描述

我刚刚将requiredWidthInand替换requiredHeigthInrequiredSizeIn如下。

    LazyColumn(
        contentPadding = PaddingValues(all = 64.dp),
        verticalArrangement = Arrangement.spacedBy(16.dp),
    ) {
        item {
            Box(
                modifier = Modifier
                    .width(200.dp)
                    .height(200.dp)
                    .border(BorderStroke(2.dp, Color.Green))
            ) {
                Box(modifier = Modifier
                    .fillMaxSize()
                    .sizeIn(100.dp, 200.dp)
                    .requiredSizeIn(150.dp, 180.dp)
                    .border(BorderStroke(3.dp, …
Run Code Online (Sandbox Code Playgroud)

android android-jetpack-compose android-jetpack-compose-modifier

1
推荐指数
1
解决办法
119
查看次数