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 -> {
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),

View File

@@ -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))

View File

@@ -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
) {

View File

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

View File

@@ -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),