Skip to content

Commit

Permalink
perf: app config page scrollToItem 0
Browse files Browse the repository at this point in the history
  • Loading branch information
lisonge committed Mar 8, 2024
1 parent a4c5532 commit 0d09dd6
Showing 1 changed file with 13 additions and 1 deletion.
14 changes: 13 additions & 1 deletion app/src/main/kotlin/li/songe/gkd/ui/AppConfigPage.kt
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import androidx.compose.foundation.layout.width
import androidx.compose.foundation.layout.wrapContentSize
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.items
import androidx.compose.foundation.lazy.rememberLazyListState
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.automirrored.filled.ArrowBack
import androidx.compose.material.icons.automirrored.filled.Sort
Expand All @@ -33,6 +34,7 @@ import androidx.compose.material3.Text
import androidx.compose.material3.TopAppBar
import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
Expand Down Expand Up @@ -77,6 +79,15 @@ fun AppConfigPage(appId: String) {
val appGroups by vm.appGroupsFlow.collectAsState()
val scrollBehavior = TopAppBarDefaults.enterAlwaysScrollBehavior()
var expanded by remember { mutableStateOf(false) }
val listState = rememberLazyListState()
var isFirstVisit by remember { mutableStateOf(false) }
LaunchedEffect(globalGroups, appGroups) {
if (isFirstVisit) {
listState.scrollToItem(0)
} else {
isFirstVisit = true
}
}
Scaffold(
modifier = Modifier.nestedScroll(scrollBehavior.nestedScrollConnection),
topBar = {
Expand Down Expand Up @@ -152,7 +163,8 @@ fun AppConfigPage(appId: String) {
},
) { contentPadding ->
LazyColumn(
modifier = Modifier.padding(contentPadding)
modifier = Modifier.padding(contentPadding),
state = listState,
) {
items(globalGroups) { g ->
val excludeData = remember(g.config?.exclude) {
Expand Down

0 comments on commit 0d09dd6

Please sign in to comment.