From c9ef384d140b614eff3924a75180fac304bc6131 Mon Sep 17 00:00:00 2001 From: Sad Ellie Date: Sun, 19 Jun 2022 17:17:49 +0300 Subject: [PATCH] Possible fix for nested scrolling --- .../unitto/screens/about/AboutScreen.kt | 4 +- .../unitto/screens/second/SecondScreen.kt | 82 +++++++++---------- .../screens/setttings/SettingsScreen.kt | 6 +- 3 files changed, 43 insertions(+), 49 deletions(-) diff --git a/app/src/main/java/com/sadellie/unitto/screens/about/AboutScreen.kt b/app/src/main/java/com/sadellie/unitto/screens/about/AboutScreen.kt index f115edc7..6d74826e 100644 --- a/app/src/main/java/com/sadellie/unitto/screens/about/AboutScreen.kt +++ b/app/src/main/java/com/sadellie/unitto/screens/about/AboutScreen.kt @@ -85,9 +85,9 @@ fun AboutScreen( }, ) { padding -> LazyColumn( - Modifier.padding(padding).padding(horizontal = 16.dp), + Modifier.padding(horizontal = 16.dp), verticalArrangement = Arrangement.spacedBy(16.dp), - contentPadding = PaddingValues(vertical = 16.dp) + contentPadding = padding ) { items(items = ALL_LIBRARIES.value) { OutlinedCard( diff --git a/app/src/main/java/com/sadellie/unitto/screens/second/SecondScreen.kt b/app/src/main/java/com/sadellie/unitto/screens/second/SecondScreen.kt index fe0a4c8c..6b02b85c 100644 --- a/app/src/main/java/com/sadellie/unitto/screens/second/SecondScreen.kt +++ b/app/src/main/java/com/sadellie/unitto/screens/second/SecondScreen.kt @@ -78,51 +78,49 @@ private fun BasicUnitListScreen( Scaffold( modifier = Modifier.nestedScroll(scrollBehavior.nestedScrollConnection), topBar = { - Column { - SearchBar( - title = title, - value = uiState.searchQuery, - onValueChange = { - viewModel.onSearchQueryChange(it) - viewModel.loadUnitsToShow(noBrokenCurrencies) - }, - favoritesOnly = uiState.favoritesOnly, - favoriteAction = { - viewModel.toggleFavoritesOnly() - viewModel.loadUnitsToShow(noBrokenCurrencies) - }, - navigateUpAction = navigateUp, - focusManager = focusManager, - scrollBehavior = scrollBehavior - ) - chipsRow( - uiState.chosenUnitGroup, - { - viewModel.toggleSelectedChip(it) - viewModel.loadUnitsToShow(noBrokenCurrencies) - }, - chipsRowLazyListState - ) - } + SearchBar( + title = title, + value = uiState.searchQuery, + onValueChange = { + viewModel.onSearchQueryChange(it) + viewModel.loadUnitsToShow(noBrokenCurrencies) + }, + favoritesOnly = uiState.favoritesOnly, + favoriteAction = { + viewModel.toggleFavoritesOnly() + viewModel.loadUnitsToShow(noBrokenCurrencies) + }, + navigateUpAction = navigateUp, + focusManager = focusManager, + scrollBehavior = scrollBehavior + ) } ) { paddingValues -> - LazyColumn( - modifier = Modifier.padding(paddingValues) + Column( + Modifier.padding(paddingValues) ) { - if (uiState.unitsToShow.isEmpty()) { - item { SearchPlaceholder() } - return@LazyColumn - } - uiState.unitsToShow.forEach { (unitGroup, listOfUnits) -> - stickyHeader { Header(text = stringResource(id = unitGroup.res)) } - items(items = listOfUnits, key = { it.unitId }) { unit -> - unitsListItem( - unit - ) { - selectAction(it) - viewModel.onSearchQueryChange("") - focusManager.clearFocus(true) - navigateUp() + chipsRow( + uiState.chosenUnitGroup, + { + viewModel.toggleSelectedChip(it) + viewModel.loadUnitsToShow(noBrokenCurrencies) + }, + chipsRowLazyListState + ) + LazyColumn { + if (uiState.unitsToShow.isEmpty()) { + item { SearchPlaceholder() } + return@LazyColumn + } + uiState.unitsToShow.forEach { (unitGroup, listOfUnits) -> + stickyHeader { Header(text = stringResource(id = unitGroup.res)) } + items(items = listOfUnits, key = { it.unitId }) { unit -> + unitsListItem(unit) { + selectAction(it) + viewModel.onSearchQueryChange("") + focusManager.clearFocus(true) + navigateUp() + } } } } diff --git a/app/src/main/java/com/sadellie/unitto/screens/setttings/SettingsScreen.kt b/app/src/main/java/com/sadellie/unitto/screens/setttings/SettingsScreen.kt index b7585504..461be5fa 100644 --- a/app/src/main/java/com/sadellie/unitto/screens/setttings/SettingsScreen.kt +++ b/app/src/main/java/com/sadellie/unitto/screens/setttings/SettingsScreen.kt @@ -88,11 +88,7 @@ fun SettingsScreen( ) }, content = { padding -> - LazyColumn( - Modifier - .padding(padding) - .fillMaxHeight() - ) { + LazyColumn(contentPadding = padding) { item { Column { // Group header