android-viewpager - 如何在 Jetpack Compose 中双向滚动
问题描述
我在 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( ... )
解决方案
推荐阅读
- machine-learning - 为什么这个简单的 Keras 模型有两个参数?
- azure - Azure PostgreSQL 服务器没有 VNET 选项
- python - 比较这样的时间字符串是否合法?
- macos-catalina - 在 Frappe Framework Bench Start 命令卡在 Rebuilding data_import_tools.min.js on MacOS
- reactjs - 如何解决三元中的 TypeScript `possibly null` 错误?
- javascript - Jszip-创建名称中带有文字“/”的文件?
- android - 使用 Glide 检查两个图像是否相同
- video - 如何在网络浏览器中测试视频的性能?
- pytorch - RuntimeError:张量 (7) 的扩展大小必须与非单维 3 处的现有大小 (128) 匹配
- reactjs - React HOC - 函数`不是函数`