LicensesScreen: Saving list position.
This commit is contained in:
parent
91dae4efca
commit
541aa257f4
3 changed files with 10 additions and 6 deletions
|
|
@ -20,14 +20,14 @@ import kotlinx.coroutines.flow.collectLatest
|
||||||
@OptIn(ExperimentalMaterial3Api::class)
|
@OptIn(ExperimentalMaterial3Api::class)
|
||||||
@Composable
|
@Composable
|
||||||
fun TopAppBarDefaults.collapsibleUntilExitScrollBehaviorWithLazyListState(
|
fun TopAppBarDefaults.collapsibleUntilExitScrollBehaviorWithLazyListState(
|
||||||
|
listState: LazyListState? = null
|
||||||
): Pair<TopAppBarScrollBehavior, LazyListState> {
|
): Pair<TopAppBarScrollBehavior, LazyListState> {
|
||||||
val listState = rememberLazyListState()
|
val lazyListState = listState ?: rememberLazyListState()
|
||||||
|
|
||||||
var canScroll by remember { mutableStateOf(false) }
|
var canScroll by remember { mutableStateOf(false) }
|
||||||
val scrollBehavior = exitUntilCollapsedScrollBehavior(
|
val scrollBehavior = exitUntilCollapsedScrollBehavior(
|
||||||
canScroll = {
|
canScroll = {
|
||||||
listState.canScrollForward || canScroll
|
lazyListState.canScrollForward || canScroll
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -39,7 +39,7 @@ fun TopAppBarDefaults.collapsibleUntilExitScrollBehaviorWithLazyListState(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return scrollBehavior to listState
|
return scrollBehavior to lazyListState
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -63,7 +63,9 @@ private fun LicensesScreen(
|
||||||
state: State<LicensesState>,
|
state: State<LicensesState>,
|
||||||
onNavigate: OnNavigate
|
onNavigate: OnNavigate
|
||||||
) {
|
) {
|
||||||
val scrollState = TopAppBarDefaults.collapsibleUntilExitScrollBehaviorWithLazyListState()
|
val scrollState = TopAppBarDefaults.collapsibleUntilExitScrollBehaviorWithLazyListState(
|
||||||
|
state.value.listState
|
||||||
|
)
|
||||||
|
|
||||||
Scaffold(
|
Scaffold(
|
||||||
Modifier
|
Modifier
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,11 @@
|
||||||
package ua.acclorite.book_story.presentation.screens.about.nested.licenses.data
|
package ua.acclorite.book_story.presentation.screens.about.nested.licenses.data
|
||||||
|
|
||||||
|
import androidx.compose.foundation.lazy.LazyListState
|
||||||
import androidx.compose.runtime.Immutable
|
import androidx.compose.runtime.Immutable
|
||||||
import com.mikepenz.aboutlibraries.entity.Library
|
import com.mikepenz.aboutlibraries.entity.Library
|
||||||
|
|
||||||
@Immutable
|
@Immutable
|
||||||
data class LicensesState(
|
data class LicensesState(
|
||||||
val licenses: List<Library> = emptyList()
|
val licenses: List<Library> = emptyList(),
|
||||||
|
val listState: LazyListState = LazyListState()
|
||||||
)
|
)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue