ref(settings): save scrollstate

This commit is contained in:
tapframe 2026-05-05 13:04:51 +05:30
parent b2df0dfd91
commit 17b1b46164

View file

@ -16,9 +16,10 @@ import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.width
import androidx.compose.foundation.layout.statusBars import androidx.compose.foundation.layout.statusBars
import androidx.compose.foundation.layout.width
import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.rememberLazyListState
import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.HorizontalDivider
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface import androidx.compose.material3.Surface
@ -30,6 +31,7 @@ import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue import androidx.compose.runtime.setValue
import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.saveable.rememberSaveableStateHolder
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
@ -296,6 +298,8 @@ private fun MobileSettingsScreen(
onCheckForUpdatesClick: (() -> Unit)? = null, onCheckForUpdatesClick: (() -> Unit)? = null,
onCollectionsClick: () -> Unit = {}, onCollectionsClick: () -> Unit = {},
) { ) {
val saveableStateHolder = rememberSaveableStateHolder()
saveableStateHolder.SaveableStateProvider(page.name) {
NuvioScreen { NuvioScreen {
stickyHeader { stickyHeader {
val previousPage = page.previousPage() val previousPage = page.previousPage()
@ -411,6 +415,7 @@ private fun MobileSettingsScreen(
} }
} }
} }
}
@Composable @Composable
private fun TabletSettingsScreen( private fun TabletSettingsScreen(
@ -468,6 +473,8 @@ private fun TabletSettingsScreen(
onPageChange(page) onPageChange(page)
} }
val saveableStateHolder = rememberSaveableStateHolder()
Row(modifier = Modifier.fillMaxSize()) { Row(modifier = Modifier.fillMaxSize()) {
Surface( Surface(
modifier = Modifier modifier = Modifier
@ -510,7 +517,10 @@ private fun TabletSettingsScreen(
} }
} }
saveableStateHolder.SaveableStateProvider(page.name) {
val listState = rememberLazyListState()
LazyColumn( LazyColumn(
state = listState,
modifier = Modifier.fillMaxSize(), modifier = Modifier.fillMaxSize(),
contentPadding = PaddingValues( contentPadding = PaddingValues(
start = 40.dp, start = 40.dp,
@ -642,3 +652,4 @@ private fun TabletSettingsScreen(
} }
} }
} }
}