Android Jetpack Compose TV Focus восстановление с навигациейAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Android Jetpack Compose TV Focus восстановление с навигацией

Сообщение Anonymous »

В моем примере приложения есть два экрана: HomeScreen и DetailsScreen.
На HomeScreen у меня есть LazyVerticalGrid из 100 элементов, а DetailsScreen — это просто кнопка «Назад».
При прокрутке главного экрана, входе в экран сведений и возврате назад фокус на нажатой карточке не восстанавливается.
Вот полный код моего примера приложения:

Код: Выделить всё

class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
val navController = rememberNavController()
NavHost(
navController = navController,
startDestination = "Home"
) {
composable("Home") {
val list = rememberSaveable { List(100) { "Card $it" } }
LazyVerticalGrid(
modifier = Modifier
.fillMaxSize(),
columns = GridCells.Adaptive(minSize = 70.dp),
contentPadding = PaddingValues(horizontal = 40.dp),
horizontalArrangement = Arrangement.spacedBy(20.dp),
verticalArrangement = Arrangement.spacedBy(20.dp)
) {
itemsIndexed(
items = list,
key = { index, _ -> index }
) { _, item ->
var isFocused by remember { mutableStateOf(false) }
Box(
modifier = Modifier
.onFocusChanged { isFocused = it.hasFocus }
.size(height = 70.dp, width = 70.dp)
.background(Color.Red)
.border(width = 2.dp, color = if (isFocused) Color.White else Color.Transparent)
.clickable { navController.navigate("Details") }
.focusable(),
contentAlignment = Alignment.Center
) {
Text(text = item)
}
}
}
}
composable("Details") {
Box(
modifier = Modifier.fillMaxSize(),
contentAlignment = Alignment.Center
) {
Button(
onClick = { navController.popBackStack() }
) {
Text(text = "Go back")
}
}
}
}
}
}
}
Есть ли простой способ реализовать восстановление фокуса (без установки восстановителя фокуса на все карты)?

Подробнее здесь: https://stackoverflow.com/questions/789 ... navigation
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Android Recyclerview Gain Focus Focus до того, как его элементы получат фокус
    Anonymous » » в форуме Android
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Android Recyclerview Gain Focus Focus до того, как его элементы получат фокус
    Anonymous » » в форуме Android
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • В чем разница между :focus-within и :has(:focus)? [закрыто]
    Anonymous » » в форуме CSS
    0 Ответы
    39 Просмотры
    Последнее сообщение Anonymous
  • Auto-Focus basicTextField без курсора JetPack Compose
    Anonymous » » в форуме Android
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Android Jetpack Compose Восстановление фокуса ТВ
    Гость » » в форуме Android
    0 Ответы
    21 Просмотры
    Последнее сообщение Гость

Вернуться в «Android»