use*_*924 9 android android-jetpack-compose android-jetpack-compose-material3
val pullRefreshState = rememberPullRefreshState(loadStatus is LoadState.Loading, onRefresh = {
photosResponse.refresh()
})
Box(
modifier
.fillMaxSize()
.pullRefresh(pullRefreshState)
Run Code Online (Sandbox Code Playgroud)
我已将材料 2 更新为材料 3:
api(libs.androidx.compose.material3) // group = "androidx.compose.material3", name = "material3"
Run Code Online (Sandbox Code Playgroud)
但现在无法使用滑动刷新,没有任何东西可以导入
Pull-to-refresh 正式版已经发布进行 Beta 测试。确保您拥有 Material31.2.0-beta01
或更高版本。
implementation("androidx.compose.material3:material3:1.2.0-beta01")
然后查看此处的示例。如果 Android 文档中的内容发生变化,我将粘贴示例以供将来参考:
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.material3.ListItem
import androidx.compose.material3.Text
import androidx.compose.material3.pulltorefresh.PullToRefreshContainer
import androidx.compose.material3.pulltorefresh.rememberPullToRefreshState
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.ui.input.nestedscroll.nestedScroll
var itemCount by remember { mutableStateOf(15) }
val state = rememberPullToRefreshState()
if (state.isRefreshing) {
LaunchedEffect(true) {
// fetch something
delay(1500)
itemCount += 5
state.endRefresh()
}
}
Box(Modifier.nestedScroll(state.nestedScrollConnection)) {
LazyColumn(Modifier.fillMaxSize()) {
if (!state.isRefreshing) {
items(itemCount) {
ListItem({ Text(text = "Item ${itemCount - it}") })
}
}
}
PullToRefreshContainer(
modifier = Modifier.align(Alignment.TopCenter),
state = state,
)
}
Run Code Online (Sandbox Code Playgroud)
希望这有帮助!
归档时间: |
|
查看次数: |
2658 次 |
最近记录: |