kotlin Jetpack Compose -如果我快速滑动,LazyColumn无法显示某些项目

omqzjyyz  于 2023-03-03  发布在  Kotlin
关注(0)|答案(2)|浏览(294)

我试着用LazyColumn滚动列表。问题是,如果我快速滚动,它不会滞后,但会跳过一些项目。当我慢慢滚动屏幕时,它可以显示所有项目。

compose_ui_version = '1.2.1'
kotlinCompilerExtensionVersion '1.1.1'

下面是我的代码:

@Composable
    fun ListItemRowCompose(listItem : RegularListItem)
    {
        Card() {
            Row(
                modifier = Modifier
                    .padding(10.dp)
            )
            {
                if(listItem.image?.imageId!! > 0)
                    Image(
                    painter = painterResource(listItem.image!!.imageId),
                    contentDescription = "",
                    modifier = Modifier
                        .padding(20.dp)
                        .size(40.dp)
                    )
                else
                    AsyncImage(model = listItem.image?.imageUrl,
                        contentDescription ="",
                        modifier = Modifier.padding(20.dp))

                Spacer(modifier = Modifier.width(8.dp))

                Column {
                    Text(listItem.title)
                    Text(listItem.description)
                }
            }
        }
    }

    @Composable
    fun ListCompose(list : RegularList) {
        LazyColumn(modifier = Modifier.fillMaxWidth()) {
            items(list.items) { li ->
                ListItemRowCompose(listItem = li)
            }
        }
    }

我的意思是:

u7up0aaq

u7up0aaq1#

您需要记住LazyColumn的状态,这样才能避免每次上下滚动时加载图像-〉rememberLazyListState().

jtoj6r0c

jtoj6r0c2#

当设备处于黑暗模式时,我遇到了这种情况,我们只添加了对明亮模式的支持,以解决这个问题,在您的应用主题中添加下面的行

<style name="AppTheme" parent="android:Theme.Material.Light.NoActionBar">
     //Add this line
    <item name="android:forceDarkAllowed" tools:targetApi="q">false</item>
</style>

相关问题