From ef2b32bbd797eef88e7a724ef0169442f5164a26 Mon Sep 17 00:00:00 2001 From: MUEDSA <7676275+muedsa@users.noreply.github.com> Date: Tue, 10 Dec 2024 17:50:21 +0800 Subject: [PATCH] update: rowFR.saveFocusedChild() & modifier.focusGroup() --- .../muedsa/compose/tv/widget/ImageCardsRow.kt | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/app/src/main/kotlin/com/muedsa/compose/tv/widget/ImageCardsRow.kt b/app/src/main/kotlin/com/muedsa/compose/tv/widget/ImageCardsRow.kt index cf8438a..82e92fd 100644 --- a/app/src/main/kotlin/com/muedsa/compose/tv/widget/ImageCardsRow.kt +++ b/app/src/main/kotlin/com/muedsa/compose/tv/widget/ImageCardsRow.kt @@ -1,5 +1,6 @@ package com.muedsa.compose.tv.widget +import androidx.compose.foundation.focusGroup import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Spacer @@ -15,6 +16,8 @@ import androidx.compose.runtime.remember import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.Modifier import androidx.compose.ui.focus.FocusRequester +import androidx.compose.ui.focus.FocusRequester.Companion.FocusRequesterFactory.component1 +import androidx.compose.ui.focus.FocusRequester.Companion.FocusRequesterFactory.component2 import androidx.compose.ui.focus.focusRequester import androidx.compose.ui.focus.focusRestorer import androidx.compose.ui.graphics.Color @@ -50,7 +53,7 @@ fun ImageCardsRow( val (rowFR, firstItemFR) = remember { FocusRequester.createRefs() } - Column(modifier) { + Column(modifier.focusGroup()) { Text( modifier = Modifier.padding(start = ImageCardRowCardPadding), text = title, @@ -86,7 +89,10 @@ fun ImageCardsRow( type = CardType.COMPACT, model = contentFn(index, it), onItemFocus = { onItemFocus(index, it) }, - onItemClick = { onItemClick(index, it) } + onItemClick = { + rowFR.saveFocusedChild() + onItemClick(index, it) + } ) } } @@ -120,7 +126,7 @@ fun StandardImageCardsRow( }) ImageCardRowCardPadding - CardContentPadding else ImageCardRowCardPadding - Column(modifier) { + Column(modifier.focusGroup()) { Text( modifier = Modifier.padding(start = ImageCardRowCardPadding), text = title, @@ -156,7 +162,10 @@ fun StandardImageCardsRow( type = CardType.STANDARD, model = contentFn(index, it), onItemFocus = { onItemFocus(index, it) }, - onItemClick = { onItemClick(index, it) } + onItemClick = { + rowFR.saveFocusedChild() + onItemClick(index, it) + } ) } }