如何在Jetpack Compose中移除LazyColumn的过度滚动效果
关闭Jetpack Compose LazyColumn过度滚动效果方案(适配1.1.0-alpha05版本)
你可以通过重写LocalOverScrollConfiguration的局部/全局配置实现和XML中android:overScrollMode="never"完全一致的关闭过度滚动效果:
单个LazyColumn单独关闭
在目标LazyColumn外层套CompositionLocalProvider,将LocalOverScrollConfiguration的值设为null即可:
import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.material.LocalOverScrollConfiguration import androidx.compose.runtime.CompositionLocalProvider // 你的页面Composable代码 @Composable fun DemoScreen() { CompositionLocalProvider( LocalOverScrollConfiguration provides null ) { LazyColumn(modifier = Modifier.fillMaxSize()) { // 此处填写你的列表项逻辑 items(100) { index -> Text(text = "列表项 $index") } } } }
全局关闭应用所有可滚动组件的过度滚动
将上述配置套在应用的根Composable外层即可,对所有LazyColumn、LazyRow、普通滚动组件都生效:
class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { CompositionLocalProvider( LocalOverScrollConfiguration provides null ) { // 你的应用根主题 MyAppTheme { // 应用导航/根页面逻辑 AppNavHost() } } } } }
提示:该API仅在Compose 1.1.0-alpha03及以上的1.1.x版本可用,升级到更高Compose版本后如果API变更可对应调整配置逻辑。
内容的提问来源于stack exchange,提问作者Ghasem Shirdel
相关产品推荐
相关产品推荐

