Possible fix for nested scrolling

This commit is contained in:
Sad Ellie 2022-06-19 17:17:49 +03:00
parent d0f122497b
commit c9ef384d14
3 changed files with 43 additions and 49 deletions

View File

@ -85,9 +85,9 @@ fun AboutScreen(
}, },
) { padding -> ) { padding ->
LazyColumn( LazyColumn(
Modifier.padding(padding).padding(horizontal = 16.dp), Modifier.padding(horizontal = 16.dp),
verticalArrangement = Arrangement.spacedBy(16.dp), verticalArrangement = Arrangement.spacedBy(16.dp),
contentPadding = PaddingValues(vertical = 16.dp) contentPadding = padding
) { ) {
items(items = ALL_LIBRARIES.value) { items(items = ALL_LIBRARIES.value) {
OutlinedCard( OutlinedCard(

View File

@ -78,51 +78,49 @@ private fun BasicUnitListScreen(
Scaffold( Scaffold(
modifier = Modifier.nestedScroll(scrollBehavior.nestedScrollConnection), modifier = Modifier.nestedScroll(scrollBehavior.nestedScrollConnection),
topBar = { topBar = {
Column { SearchBar(
SearchBar( title = title,
title = title, value = uiState.searchQuery,
value = uiState.searchQuery, onValueChange = {
onValueChange = { viewModel.onSearchQueryChange(it)
viewModel.onSearchQueryChange(it) viewModel.loadUnitsToShow(noBrokenCurrencies)
viewModel.loadUnitsToShow(noBrokenCurrencies) },
}, favoritesOnly = uiState.favoritesOnly,
favoritesOnly = uiState.favoritesOnly, favoriteAction = {
favoriteAction = { viewModel.toggleFavoritesOnly()
viewModel.toggleFavoritesOnly() viewModel.loadUnitsToShow(noBrokenCurrencies)
viewModel.loadUnitsToShow(noBrokenCurrencies) },
}, navigateUpAction = navigateUp,
navigateUpAction = navigateUp, focusManager = focusManager,
focusManager = focusManager, scrollBehavior = scrollBehavior
scrollBehavior = scrollBehavior )
)
chipsRow(
uiState.chosenUnitGroup,
{
viewModel.toggleSelectedChip(it)
viewModel.loadUnitsToShow(noBrokenCurrencies)
},
chipsRowLazyListState
)
}
} }
) { paddingValues -> ) { paddingValues ->
LazyColumn( Column(
modifier = Modifier.padding(paddingValues) Modifier.padding(paddingValues)
) { ) {
if (uiState.unitsToShow.isEmpty()) { chipsRow(
item { SearchPlaceholder() } uiState.chosenUnitGroup,
return@LazyColumn {
} viewModel.toggleSelectedChip(it)
uiState.unitsToShow.forEach { (unitGroup, listOfUnits) -> viewModel.loadUnitsToShow(noBrokenCurrencies)
stickyHeader { Header(text = stringResource(id = unitGroup.res)) } },
items(items = listOfUnits, key = { it.unitId }) { unit -> chipsRowLazyListState
unitsListItem( )
unit LazyColumn {
) { if (uiState.unitsToShow.isEmpty()) {
selectAction(it) item { SearchPlaceholder() }
viewModel.onSearchQueryChange("") return@LazyColumn
focusManager.clearFocus(true) }
navigateUp() 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()
}
} }
} }
} }

View File

@ -88,11 +88,7 @@ fun SettingsScreen(
) )
}, },
content = { padding -> content = { padding ->
LazyColumn( LazyColumn(contentPadding = padding) {
Modifier
.padding(padding)
.fillMaxHeight()
) {
item { item {
Column { Column {
// Group header // Group header