在Jetpack Compose的TvLazyRow/TvLazyColumn中修复给定枢轴上的项目。

huangapple go评论103阅读模式
英文:

Fix item at a given pivot in Jetpack Compose's TvLazyRow/TvLazyColumn

问题

我正在使用jetpack compose for tv库中的TvLazyRow组件,并使用PivotOffsets来将焦点项目定位到行中的固定位置。

当我将行滚动到最末尾时,固定位置的值没有被尊重,可聚焦的项目会移到最末尾。

如何在滚动到最末尾或最开头时保持位置固定?

观察到的行为:

在Jetpack Compose的TvLazyRow/TvLazyColumn中修复给定枢轴上的项目。

期望的行为:

在Jetpack Compose的TvLazyRow/TvLazyColumn中修复给定枢轴上的项目。

英文:

I am using the TvLazyRow composable from the jetpack compose for tv library and using PivotOffsets to position the focused item at a fixed position in the row.

When I scroll the row to the very end, the fixed position value is not respected and the focusable item goes to the very end.

How do keep the position fixed even when scrolling to the very end or beginning?

Observed behaviour:

在Jetpack Compose的TvLazyRow/TvLazyColumn中修复给定枢轴上的项目。

Desired behaviour:

在Jetpack Compose的TvLazyRow/TvLazyColumn中修复给定枢轴上的项目。

答案1

得分: 4

TvLazyRowTvLazyColumn 中,pivotOffsets 不会对列表开头或结尾的项目生效。要实现所需的行为,您可以在列表的开头和结尾添加一个虚拟的不可聚焦框,以便保持项目在所需的枢轴上。

TvLazyRow {

    // 虚拟的不可聚焦占位框,用于占据空间
    // 当前面的卡片被聚焦时
    item { PlaceholderBox(width = 300.dp) }

    items(10) {
        Card()
    }

    // 虚拟的不可聚焦占位框,用于占据空间
    // 当后面的卡片被聚焦时
    item { PlaceholderBox(width = 400.dp) }

}

在Jetpack Compose的TvLazyRow/TvLazyColumn中修复给定枢轴上的项目。

英文:

pivotOffsets in TvLazyRow or TvLazyColumn is not respected for the items at the beginning or the end of the list. To get your desired behaviour, you can add a dummy non-focusable box at the beginning and end of the list so that it maintains your items at the desired pivots.

TvLazyRow {

    // dummy non-focusable placeholder box to occupy the space 
    // when one of the first few cards are focused
    item { PlaceholderBox(width = 300.dp) }

    items(10) {
        Card()
    }

    // dummy non-focusable placeholder box to occupy the space 
    // when one of the last few cards are focused
    item { PlaceholderBox(width = 400.dp) }

}

在Jetpack Compose的TvLazyRow/TvLazyColumn中修复给定枢轴上的项目。

huangapple
  • 本文由 发表于 2023年7月10日 17:41:49
  • 转载请务必保留本文链接:https://go.coder-hub.com/76652527.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定