Refactor(Scroll): Optimize scroll

This commit is contained in:
2024-08-26 14:35:13 +08:00
parent f0ef28bd19
commit 7653028241
5 changed files with 25 additions and 9 deletions

View File

@@ -197,7 +197,8 @@ internal fun LibrariesScreen(
LibrariesScreenUiState.Nothing -> { LibrariesScreenUiState.Nothing -> {
Column( Column(
modifier = Modifier modifier = Modifier
.fillMaxSize(), .fillMaxSize()
.verticalScroll(state = rememberScrollState()),
horizontalAlignment = Alignment.CenterHorizontally, horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center verticalArrangement = Arrangement.Center
) { ) {
@@ -208,7 +209,8 @@ internal fun LibrariesScreen(
LibrariesScreenUiState.NotFound -> { LibrariesScreenUiState.NotFound -> {
Column( Column(
modifier = Modifier modifier = Modifier
.fillMaxSize(), .fillMaxSize()
.verticalScroll(state = rememberScrollState()),
horizontalAlignment = Alignment.CenterHorizontally, horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center verticalArrangement = Arrangement.Center
) { ) {
@@ -228,6 +230,8 @@ internal fun LibrariesScreen(
} }
LazyVerticalStaggeredGrid( LazyVerticalStaggeredGrid(
modifier = Modifier
.fillMaxSize(),
columns = StaggeredGridCells.Adaptive(300.dp), columns = StaggeredGridCells.Adaptive(300.dp),
contentPadding = PaddingValues(16.dp), contentPadding = PaddingValues(16.dp),
horizontalArrangement = Arrangement.spacedBy(16.dp), horizontalArrangement = Arrangement.spacedBy(16.dp),

View File

@@ -126,7 +126,9 @@ internal fun StarScreen(
StarScreenUiState.Nothing -> { StarScreenUiState.Nothing -> {
Column( Column(
modifier = Modifier.fillMaxSize(), modifier = Modifier
.fillMaxSize()
.verticalScroll(state = rememberScrollState()),
horizontalAlignment = Alignment.CenterHorizontally, horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center verticalArrangement = Arrangement.Center
) { ) {
@@ -136,6 +138,8 @@ internal fun StarScreen(
is StarScreenUiState.Success -> { is StarScreenUiState.Success -> {
LazyVerticalStaggeredGrid( LazyVerticalStaggeredGrid(
modifier = Modifier
.fillMaxSize(),
columns = StaggeredGridCells.Adaptive(160.dp), columns = StaggeredGridCells.Adaptive(160.dp),
contentPadding = PaddingValues(16.dp), contentPadding = PaddingValues(16.dp),
horizontalArrangement = Arrangement.spacedBy(16.dp), horizontalArrangement = Arrangement.spacedBy(16.dp),

View File

@@ -128,6 +128,8 @@ internal fun ToolStoreScreen(
modifier.fillMaxSize() modifier.fillMaxSize()
) { ) {
LazyVerticalStaggeredGrid( LazyVerticalStaggeredGrid(
modifier = Modifier
.fillMaxSize(),
columns = StaggeredGridCells.Adaptive(160.dp), columns = StaggeredGridCells.Adaptive(160.dp),
contentPadding = PaddingValues(16.dp), contentPadding = PaddingValues(16.dp),
horizontalArrangement = Arrangement.spacedBy(16.dp), horizontalArrangement = Arrangement.spacedBy(16.dp),
@@ -177,7 +179,9 @@ internal fun ToolStoreScreen(
if (itemsAvailable == 0 && !isToolLoading) { if (itemsAvailable == 0 && !isToolLoading) {
Column( Column(
modifier = Modifier.fillMaxSize(), modifier = Modifier
.fillMaxSize()
.verticalScroll(state = rememberScrollState()),
horizontalAlignment = Alignment.CenterHorizontally, horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center verticalArrangement = Arrangement.Center
) { ) {

View File

@@ -33,9 +33,9 @@ class ToolStoreViewModel @Inject constructor(
val storeData: Flow<PagingData<ToolEntity>> = combine( val storeData: Flow<PagingData<ToolEntity>> = combine(
searchValue, currentPage, ::Pair searchValue, currentPage, ::Pair
).flatMapLatest { (searchValue, currentPage) -> ).flatMapLatest { (searchValue, currentPage) ->
storeRepository.getStore(searchValue, currentPage).cachedIn( storeRepository
scope = viewModelScope .getStore(searchValue, currentPage)
) .cachedIn(viewModelScope)
} }
fun onSearchValueChange(value: String) { fun onSearchValueChange(value: String) {

View File

@@ -146,7 +146,9 @@ internal fun ToolsScreen(
ToolsScreenUiState.Nothing -> { ToolsScreenUiState.Nothing -> {
Column( Column(
modifier = Modifier.fillMaxSize(), modifier = Modifier
.fillMaxSize()
.verticalScroll(state = rememberScrollState()),
horizontalAlignment = Alignment.CenterHorizontally, horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center verticalArrangement = Arrangement.Center
) { ) {
@@ -159,6 +161,8 @@ internal fun ToolsScreen(
is ToolsScreenUiState.Success -> { is ToolsScreenUiState.Success -> {
LazyVerticalStaggeredGrid( LazyVerticalStaggeredGrid(
modifier = Modifier
.fillMaxSize(),
columns = StaggeredGridCells.Adaptive(160.dp), columns = StaggeredGridCells.Adaptive(160.dp),
contentPadding = PaddingValues(16.dp), contentPadding = PaddingValues(16.dp),
horizontalArrangement = Arrangement.spacedBy(16.dp), horizontalArrangement = Arrangement.spacedBy(16.dp),