我在 Jetpack compose 中创建了一个相当经典的折叠图像布局,我在屏幕顶部有一个视差滚动的图像,并且在某个点我将工具栏背景从透明更改为 primarySurface。这一切都很好。
我现在想在顶部有一个图像寻呼机而不是单个图像,但垂直滚动消耗了屏幕顶部的所有触摸。我已经尝试添加一个 NestedScrollConnection,但我似乎仍然只能在一个轴上获得 preScroll delta。显然,我什至无法在此区域内添加图标来进行手动寻呼机滚动,而不会消耗点击。一旦我verticalScroll
从列中删除 ,我就可以获取寻呼机的水平滚动事件。
我正在使用 Compose 1.0.2 和 Accompanist 0.18 寻呼机和插图库。
这是我想要添加寻呼机的现有代码的要点。如何让寻呼机和垂直滚动都工作?
val scrollState = rememberScrollState()
Box {
val imageHeight =
if (LocalConfiguration.current.orientation == Configuration.ORIENTATION_LANDSCAPE) 180.dp else 300.dp
Box {
// I want to insert a horizontal pager here
HeaderImage(
scrollPosition = scrollState.value,
info = item.heroImages.first(),
imageHeight = imageHeight
)
}
val appBarHeight = with(LocalDensity.current) { 56.dp.toPx() }
val scrollHeight = with(LocalDensity.current) { imageHeight.toPx() - appBarHeight }
Column(
Modifier
.verticalScroll(scrollState)
.padding(top = imageHeight)
.fillMaxSize()
) { ... }
TopAppBar( ... )