From 1d790ad923588877edc0651deaf6dc63ed35144b Mon Sep 17 00:00:00 2001 From: "arthur.valin" Date: Mon, 2 Oct 2023 19:57:02 +0200 Subject: [PATCH] Bet Creation Screen : Correcting bug (clearing focus when the page changes) --- .../fr/iut/alldev/allin/ui/betcreation/BetCreationScreen.kt | 5 +++++ .../main/java/fr/iut/alldev/allin/ui/core/AllInSections.kt | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/app/src/main/java/fr/iut/alldev/allin/ui/betcreation/BetCreationScreen.kt b/src/app/src/main/java/fr/iut/alldev/allin/ui/betcreation/BetCreationScreen.kt index 4efd347..ed5dfeb 100644 --- a/src/app/src/main/java/fr/iut/alldev/allin/ui/betcreation/BetCreationScreen.kt +++ b/src/app/src/main/java/fr/iut/alldev/allin/ui/betcreation/BetCreationScreen.kt @@ -8,6 +8,7 @@ import androidx.compose.foundation.verticalScroll import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalFocusManager import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import fr.iut.alldev.allin.R @@ -37,6 +38,7 @@ fun BetCreationScreen( var selectedBetType by remember { mutableStateOf(betTypes[0]) } var selectionElements by remember { mutableStateOf(listOf()) } var selectedBetTypeElement by remember { mutableStateOf(null)} + val focus = LocalFocusManager.current LaunchedEffect(key1 = betTypes) { selectionElements = betTypes.map { @@ -64,6 +66,9 @@ fun BetCreationScreen( .padding(top = 20.dp) ) { AllInSections( + onLoadSection = { + focus.clearFocus() + }, modifier = Modifier .align(Alignment.TopCenter) .fillMaxSize() diff --git a/src/app/src/main/java/fr/iut/alldev/allin/ui/core/AllInSections.kt b/src/app/src/main/java/fr/iut/alldev/allin/ui/core/AllInSections.kt index 61a047f..c9091e4 100644 --- a/src/app/src/main/java/fr/iut/alldev/allin/ui/core/AllInSections.kt +++ b/src/app/src/main/java/fr/iut/alldev/allin/ui/core/AllInSections.kt @@ -28,7 +28,8 @@ class SectionElement( fun AllInSections( sections: List, interSectionsPadding: Dp = 56.dp, - modifier: Modifier = Modifier + modifier: Modifier = Modifier, + onLoadSection: ()->Unit = {} ) { val pagerState = rememberPagerState(pageCount = { sections.size @@ -54,6 +55,9 @@ fun AllInSections( } } HorizontalPager(state = pagerState) { page -> + LaunchedEffect(key1 = page){ + onLoadSection() + } sections[page].content() } }