gpt4 book ai didi

scroll - Jetpack Compose - 修改滚动行为以将焦点保持在屏幕上的固定位置

转载 作者:行者123 更新时间:2023-12-03 07:53:25 35 4
gpt4 key购买 nike

使用 jetpack compose 为电视平台创建 AP,我一直在尝试在 jetpack compose 中创建一行,该行围绕屏幕上的固定位置滚动,以下是在 google TV 启动器上观察到的目标行为:

Target Behaviour

在这里我们可以看到 View 固定在屏幕的左侧,而整行围绕它移动

这是我的lazyrow可组合项的当前行为:

Current Behaviour

正如我们在这里看到的,在列表开始围绕焦点移动之前,焦点会一直向右或向左移动。

使惰性行滚动的行为像第一个示例中那样有什么帮助吗?

最佳答案

您可以使用 Compose for TV 中的 TvLazyRow库正好解决了这个问题。它是 androidx.tv.foundation.lazy.list 包的一部分。

要使用它,您可以使用接受 PivotOffsets 类实例的 pivotOffsets 参数。为此,您可以传递 2 个参数:

  • parentFraction 定义子元素起始边缘相对于父元素起始边缘的偏移量
  • childFraction 定义子项起始边缘相对于parentFraction 定义的枢轴的偏移量

以下是将项目精确放置在中心的示例用法:

import androidx.tv.foundation.lazy.list.TvLazyRow

TvLazyRow(
pivotOffsets = PivotOffsets(0.5f, 0.5f),
horizontalArrangement = Arrangement.spacedBy(20.dp)
) {
items(10) {
Card(backgroundColor = Color.Red)
}
}

如果您想要 Google TV 启动器的外观,可以将 PivotOffsets 更新为以下内容:

import androidx.tv.foundation.lazy.list.TvLazyRow

TvLazyRow(
pivotOffsets = PivotOffsets(0.1f, 0f),
horizontalArrangement = Arrangement.spacedBy(20.dp)
) {
items(10) {
Card(backgroundColor = Color.Red)
}
}

关于scroll - Jetpack Compose - 修改滚动行为以将焦点保持在屏幕上的固定位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76602896/

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