gpt4 book ai didi

android - BottomSheetDialogFragment 内的 LazyColumn 滚动问题

转载 作者:行者123 更新时间:2023-12-05 09:02:49 26 4
gpt4 key购买 nike

我在 BottomSheetDialogFragment 中使用了 LazyColumn,但是如果滚动 LazyColumn list UP 然后 Bottom Sheet Dialog 滚动LazyColumn 列表。似乎 BottomSheetDialogFragment 拦截了用户触摸输入。

这就是它的样子:

如何在 BottomSheetDialogFragment 中正确使用 LazyColumn

MyBottomSheetDialogFragment.kt:

class MyBottomSheetDialogFragment : BottomSheetDialogFragment() {
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
return ComposeView(requireContext()).apply {
setContent {
Column(horizontalAlignment = Alignment.CenterHorizontally) {
Text("Header", color = Color.Black)
LazyColumn(
Modifier
.weight(1f)
.fillMaxWidth()) {
items(100) {
Text("Item $it", Modifier.fillMaxWidth(), Color.Black)
}
}
}
}
}
}
}

并使用此代码显示它:

MyBottomSheetDialogFragment().show(activity.supportFragmentManager, null)

当我们使用 XML RecyclerView 列表时,为了解决这个问题,我们必须用 NestedScrollView 包裹 RecyclerView 列表,例如 described here ,但如何使用 Jetpack Compose 修复它?

最佳答案

因为编写 1.2.0-beta01 问题可以通过使用来解决 rememberNestedScrollInteropConnection :

Modifier.nestedScroll(rememberNestedScrollInteropConnection())

在我的例子中,BottomSheetDialogFragment 是标准的 View 并且它有 ComposeView 和 id container。在 onViewCreated 中,我这样做:

binding.container.setContent {
AppTheme {
Surface(
modifier = Modifier.nestedScroll(rememberNestedScrollInteropConnection())
) {
LazyColumn {
// ITEMS
}
}
}
}

现在列表以正确的方式滚动。

关于android - BottomSheetDialogFragment 内的 LazyColumn 滚动问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70791568/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com