From 76530282414c5fb790ace1536a88dd80b67f2458 Mon Sep 17 00:00:00 2001 From: FatttSnake Date: Mon, 26 Aug 2024 14:35:13 +0800 Subject: [PATCH] Refactor(Scroll): Optimize scroll --- .../top/fatweb/oxygen/toolbox/ui/about/LibrariesScreen.kt | 8 ++++++-- .../top/fatweb/oxygen/toolbox/ui/star/ToolStarScreen.kt | 8 ++++++-- .../top/fatweb/oxygen/toolbox/ui/store/ToolStoreScreen.kt | 6 +++++- .../fatweb/oxygen/toolbox/ui/store/ToolStoreViewModel.kt | 6 +++--- .../top/fatweb/oxygen/toolbox/ui/tools/ToolsScreen.kt | 6 +++++- 5 files changed, 25 insertions(+), 9 deletions(-) diff --git a/app/src/main/kotlin/top/fatweb/oxygen/toolbox/ui/about/LibrariesScreen.kt b/app/src/main/kotlin/top/fatweb/oxygen/toolbox/ui/about/LibrariesScreen.kt index cebb433..75ad3c9 100644 --- a/app/src/main/kotlin/top/fatweb/oxygen/toolbox/ui/about/LibrariesScreen.kt +++ b/app/src/main/kotlin/top/fatweb/oxygen/toolbox/ui/about/LibrariesScreen.kt @@ -197,7 +197,8 @@ internal fun LibrariesScreen( LibrariesScreenUiState.Nothing -> { Column( modifier = Modifier - .fillMaxSize(), + .fillMaxSize() + .verticalScroll(state = rememberScrollState()), horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center ) { @@ -208,7 +209,8 @@ internal fun LibrariesScreen( LibrariesScreenUiState.NotFound -> { Column( modifier = Modifier - .fillMaxSize(), + .fillMaxSize() + .verticalScroll(state = rememberScrollState()), horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center ) { @@ -228,6 +230,8 @@ internal fun LibrariesScreen( } LazyVerticalStaggeredGrid( + modifier = Modifier + .fillMaxSize(), columns = StaggeredGridCells.Adaptive(300.dp), contentPadding = PaddingValues(16.dp), horizontalArrangement = Arrangement.spacedBy(16.dp), diff --git a/app/src/main/kotlin/top/fatweb/oxygen/toolbox/ui/star/ToolStarScreen.kt b/app/src/main/kotlin/top/fatweb/oxygen/toolbox/ui/star/ToolStarScreen.kt index 4107b8b..c34ea57 100644 --- a/app/src/main/kotlin/top/fatweb/oxygen/toolbox/ui/star/ToolStarScreen.kt +++ b/app/src/main/kotlin/top/fatweb/oxygen/toolbox/ui/star/ToolStarScreen.kt @@ -126,7 +126,9 @@ internal fun StarScreen( StarScreenUiState.Nothing -> { Column( - modifier = Modifier.fillMaxSize(), + modifier = Modifier + .fillMaxSize() + .verticalScroll(state = rememberScrollState()), horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center ) { @@ -136,6 +138,8 @@ internal fun StarScreen( is StarScreenUiState.Success -> { LazyVerticalStaggeredGrid( + modifier = Modifier + .fillMaxSize(), columns = StaggeredGridCells.Adaptive(160.dp), contentPadding = PaddingValues(16.dp), horizontalArrangement = Arrangement.spacedBy(16.dp), @@ -214,7 +218,7 @@ private fun ToolMenu( ModalBottomSheet(onDismissRequest = onDismiss, dragHandle = {}) { Column( modifier = modifier.padding(16.dp) - ){ + ) { DialogTitle(text = selectedTool.name) HorizontalDivider() Spacer(Modifier.height(4.dp)) diff --git a/app/src/main/kotlin/top/fatweb/oxygen/toolbox/ui/store/ToolStoreScreen.kt b/app/src/main/kotlin/top/fatweb/oxygen/toolbox/ui/store/ToolStoreScreen.kt index 93b3ab9..1b709e7 100644 --- a/app/src/main/kotlin/top/fatweb/oxygen/toolbox/ui/store/ToolStoreScreen.kt +++ b/app/src/main/kotlin/top/fatweb/oxygen/toolbox/ui/store/ToolStoreScreen.kt @@ -128,6 +128,8 @@ internal fun ToolStoreScreen( modifier.fillMaxSize() ) { LazyVerticalStaggeredGrid( + modifier = Modifier + .fillMaxSize(), columns = StaggeredGridCells.Adaptive(160.dp), contentPadding = PaddingValues(16.dp), horizontalArrangement = Arrangement.spacedBy(16.dp), @@ -177,7 +179,9 @@ internal fun ToolStoreScreen( if (itemsAvailable == 0 && !isToolLoading) { Column( - modifier = Modifier.fillMaxSize(), + modifier = Modifier + .fillMaxSize() + .verticalScroll(state = rememberScrollState()), horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center ) { diff --git a/app/src/main/kotlin/top/fatweb/oxygen/toolbox/ui/store/ToolStoreViewModel.kt b/app/src/main/kotlin/top/fatweb/oxygen/toolbox/ui/store/ToolStoreViewModel.kt index 6eb5092..26c1d3f 100644 --- a/app/src/main/kotlin/top/fatweb/oxygen/toolbox/ui/store/ToolStoreViewModel.kt +++ b/app/src/main/kotlin/top/fatweb/oxygen/toolbox/ui/store/ToolStoreViewModel.kt @@ -33,9 +33,9 @@ class ToolStoreViewModel @Inject constructor( val storeData: Flow> = combine( searchValue, currentPage, ::Pair ).flatMapLatest { (searchValue, currentPage) -> - storeRepository.getStore(searchValue, currentPage).cachedIn( - scope = viewModelScope - ) + storeRepository + .getStore(searchValue, currentPage) + .cachedIn(viewModelScope) } fun onSearchValueChange(value: String) { diff --git a/app/src/main/kotlin/top/fatweb/oxygen/toolbox/ui/tools/ToolsScreen.kt b/app/src/main/kotlin/top/fatweb/oxygen/toolbox/ui/tools/ToolsScreen.kt index 7da17a5..e0c0296 100644 --- a/app/src/main/kotlin/top/fatweb/oxygen/toolbox/ui/tools/ToolsScreen.kt +++ b/app/src/main/kotlin/top/fatweb/oxygen/toolbox/ui/tools/ToolsScreen.kt @@ -146,7 +146,9 @@ internal fun ToolsScreen( ToolsScreenUiState.Nothing -> { Column( - modifier = Modifier.fillMaxSize(), + modifier = Modifier + .fillMaxSize() + .verticalScroll(state = rememberScrollState()), horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center ) { @@ -159,6 +161,8 @@ internal fun ToolsScreen( is ToolsScreenUiState.Success -> { LazyVerticalStaggeredGrid( + modifier = Modifier + .fillMaxSize(), columns = StaggeredGridCells.Adaptive(160.dp), contentPadding = PaddingValues(16.dp), horizontalArrangement = Arrangement.spacedBy(16.dp),