From a4482f4a6b7fa753dd47af35612eb8f2e15a3e4e Mon Sep 17 00:00:00 2001 From: Ankit Suda Date: Fri, 25 Nov 2022 15:11:41 +0530 Subject: [PATCH] Scroll to top on change search term in exercises screen --- .../ankitsuda/rebound/ui/exercises/ExercisesScreen.kt | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/modules/ui-exercises/src/main/java/com/ankitsuda/rebound/ui/exercises/ExercisesScreen.kt b/modules/ui-exercises/src/main/java/com/ankitsuda/rebound/ui/exercises/ExercisesScreen.kt index 46753c81..823d5203 100644 --- a/modules/ui-exercises/src/main/java/com/ankitsuda/rebound/ui/exercises/ExercisesScreen.kt +++ b/modules/ui-exercises/src/main/java/com/ankitsuda/rebound/ui/exercises/ExercisesScreen.kt @@ -21,6 +21,7 @@ import androidx.compose.foundation.background import androidx.compose.foundation.layout.* import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items +import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.material.* import androidx.compose.material.icons.Icons import androidx.compose.material.icons.outlined.Add @@ -46,6 +47,7 @@ import com.ankitsuda.rebound.ui.theme.LocalThemeState import me.onebone.toolbar.CollapsingToolbarScaffold import com.ankitsuda.rebound.ui.theme.ReboundTheme import com.google.accompanist.pager.ExperimentalPagerApi +import kotlinx.coroutines.delay import me.onebone.toolbar.ScrollStrategy import me.onebone.toolbar.rememberCollapsingToolbarScaffoldState @@ -100,6 +102,14 @@ private fun ExercisesScreenContent( onChangeSearchTerm: (String) -> Unit ) { val collapsingState = rememberCollapsingToolbarScaffoldState() + val scrollState = rememberLazyListState() + + LaunchedEffect(key1 = searchTerm) { + delay(100) + if (scrollState.firstVisibleItemIndex != 0) { + scrollState.animateScrollToItem(0) + } + } BackHandler(isSearchMode) { onToggleSearchMode() @@ -154,6 +164,7 @@ private fun ExercisesScreenContent( LazyColumn( modifier = Modifier .fillMaxSize(), + state = scrollState ) { items(exercisesPaged, key = { when (it) {