PullRefreshIndicator 圆圈始终显示在 jetpack compose 上

问题描述 投票:0回答:1

即使是第一次或刷新后,始终会显示

PullToRefreshContainer
的空白灰色圆圈。

这是我的代码

val pullRefreshState = rememberPullToRefreshState()

Box(
    modifier = Modifier
        .fillMaxSize()
        .nestedScroll(connection = pullRefreshState.nestedScrollConnection)
) {
    // Another contents

    PullToRefreshContainer(
        modifier = Modifier.align(alignment = Alignment.TopCenter),
        state = pullRefreshState,
    )
}

当前撰写版本:

1.6.4

任何帮助!

android-jetpack-compose pull-to-refresh
1个回答
0
投票

我也有同样的问题。我解决了。

代码是

var itemCount by remember { mutableIntStateOf(15) }
val pullRefreshState = rememberPullToRefreshState()
if (pullRefreshState.isRefreshing) {
    LaunchedEffect(true) {
        // fetch something
        delay(1500)
        itemCount += 5
        pullRefreshState.endRefresh()
    }
}
Box(Modifier.nestedScroll(pullRefreshState.nestedScrollConnection)) {
    LazyColumn(Modifier.fillMaxSize()) {
        if (!pullRefreshState.isRefreshing) {
            items(itemCount) {
                ListItem({ Text(text = "Item ${itemCount - it}") })
            }
        }
    }
    if (pullRefreshState.progress>0||pullRefreshState.isRefreshing) {
        PullToRefreshContainer(
            modifier = Modifier.align(Alignment.TopCenter),
            state = pullRefreshState,
        )
    }
}

这样很好,但是当你第一次向下拉时,指示器会立即出现,并且它仍然会覆盖上部组件一会儿。我是这样解决的,pullRefreshState.progress>0.5f||pullRefreshState.isRefreshing,这样只有下拉到一半的时候才能显示,所以一开始就不显示了

© www.soinside.com 2019 - 2024. All rights reserved.