Как сделать поставить кнопку в фокус на android tv?
У меня есть такой экран на андроид tv:
В левой панели есть список кнопок, и сейчас ни одна из них не активна. В tv имплементациях эти кнопки могут быть в фокусе в зависимости от того куда пользователь двигает навигацию (нажимая на пульте вверх/вниз). То есть, мне нужно, чтоб когда этот экран открывается первая кнопку была в фокусе. Вот так
Вот такой код для отрисовки кнопок:
...
Column(
modifier = Modifier.fillMaxWidth()
) {
val curMenuItems: List<SettingItem> by menuItems.collectAsStateWithLifecycle()
curMenuItems.forEach {
val interactionSource: MutableInteractionSource = remember { MutableInteractionSource() }
val isFocused: Boolean by interactionSource.collectIsFocusedAsState()
val iconTint: Color = if (isFocused) ColorTokens.black else ColorTokens.unspecified
Button(
modifier = Modifier
.height(96.dp.withDPIOffset(LocalContext.current))
.width(480.dp.withDPIOffset(LocalContext.current)),
colors = ButtonDefaults.colors(
containerColor = Color.Transparent,
contentColor = ColorTokens.warm_grey_10,
focusedContainerColor = Color.White,
focusedContentColor = Color.Black,
pressedContainerColor = Color.Gray,
pressedContentColor = Color.LightGray
),
interactionSource = interactionSource
onClick = { ... }
) {
Row(
modifier = Modifier.fillMaxSize(),
horizontalArrangement = ...
verticalAlignment = Alignment.CenterVertically
) {
...
}
}
}
}
...
То есть для изменения фокуса я использую interactionSource
но это работает только когда юзер нажимает на кнопки навигации на пульте, а мне нужно для первой кнопки в списке установить так сказать initial state -> inFocus true.
Любые идеи приветствуются:)