我想根据 TVLazyColumn 中的行标题是否是焦点来对它进行动画处理。
我找不到如何获取列中的哪个项目具有焦点。
您可以使用
onFocusChanged
修饰符来了解某个项目是否处于焦点状态。将修改器附加到所有行,您可以使用 it.hasFocus
检查焦点是否位于相应的惰性行内。
@Composable
fun App() {
TvLazyColumn {
item { AppRow() }
item { AppRow() }
item { AppRow() }
// ...
}
}
@Composable
fun AppRow() {
var doesRowHaveFocus by remember { mutableStateOf(false) }
TvLazyRow(
modifier = Modifier
.onFocusChange {
doesRowHaveFocus = it.hasFocus
}
) {
item { FocusableItem() }
item { FocusableItem() }
item { FocusableItem() }
// ...
}
}