考虑以下代码:
val tvListState = rememberTvLazyListState()
val coScope = rememberCoroutineScope()
Column{
TvLazyRow(
horizontalArrangement = Arrangement.spacedBy(15.dp),
state = tvListState,
modifier = modifier
.padding(end = 5.dp)
, pivotOffsets = PivotOffsets(0f)) { *items* }
TvLazyRow(
horizontalArrangement = Arrangement.spacedBy(15.dp),
state = tvListState,
modifier = modifier
.padding(end = 5.dp)
, pivotOffsets = PivotOffsets(0f)) { *items* }
TvLazyRow(
horizontalArrangement = Arrangement.spacedBy(15.dp),
state = tvListState,
modifier = modifier
.padding(end = 5.dp)
, pivotOffsets = PivotOffsets(0f)) { *items* }
}
我想要做的是,当我们进入该行时,专注于其中一个惰性行中的特定项目,并将其绑定到一个标志,可能类似于
preFocusOnItem
。在我当前的实现中,我必须使用 itemsRequester[preFocusOnItem].requestfocus()
内的 LaunchedEffect
来调用此项目的焦点,其中数组用于为每个项目分配焦点请求者。这种方法的问题是焦点首先到达滚动自然会带来焦点的项目,然后在一瞬间焦点跳到我想要关注的项目。
如何在输入
preFocusOnItem
之一时直接调用焦点在 TvLazyRows
项上??
您可以使用默认的
LazyColumn
将初始滚动位置设置为 LazyRow
或
rememberLazyListState
,如下所示:
// this will initialize scrolling position to the 5th item in the LazyList
val listState = rememberLazyListState(initialFirstVisibleItemIndex = 5)
LazyRow(
state = listState
) {
// ...
}