diff --git a/lib/src/main/java/me/onebone/toolbar/CollapsingToolbar.kt b/lib/src/main/java/me/onebone/toolbar/CollapsingToolbar.kt index a9958ee..7d2822b 100644 --- a/lib/src/main/java/me/onebone/toolbar/CollapsingToolbar.kt +++ b/lib/src/main/java/me/onebone/toolbar/CollapsingToolbar.kt @@ -57,12 +57,14 @@ import kotlin.math.roundToInt @Stable class CollapsingToolbarState( - initial: Int = Int.MAX_VALUE -): ScrollableState { + initialHeight: Int = Int.MAX_VALUE, + initialMinHeight: Int = 0, + initialMaxHeight: Int = Int.MAX_VALUE, +) : ScrollableState { /** * [height] indicates current height of the toolbar. */ - var height: Int by mutableStateOf(initial) + var height: Int by mutableStateOf(initialHeight) private set /** @@ -95,8 +97,8 @@ class CollapsingToolbarState( } } - private var maxHeightState by mutableStateOf(Int.MAX_VALUE) - private var minHeightState by mutableStateOf(0) + private var maxHeightState by mutableStateOf(initialMaxHeight) + private var minHeightState by mutableStateOf(initialMinHeight) val progress: Float @FloatRange(from = 0.0, to = 1.0) @@ -189,11 +191,11 @@ class CollapsingToolbarState( @Composable fun rememberCollapsingToolbarState( - initial: Int = Int.MAX_VALUE + initialHeight: Int = Int.MAX_VALUE ): CollapsingToolbarState { return remember { CollapsingToolbarState( - initial = initial + initialHeight = initialHeight ) } } diff --git a/lib/src/main/java/me/onebone/toolbar/CollapsingToolbarScaffold.kt b/lib/src/main/java/me/onebone/toolbar/CollapsingToolbarScaffold.kt index 8a06714..b2b18a0 100644 --- a/lib/src/main/java/me/onebone/toolbar/CollapsingToolbarScaffold.kt +++ b/lib/src/main/java/me/onebone/toolbar/CollapsingToolbarScaffold.kt @@ -50,13 +50,19 @@ class CollapsingToolbarScaffoldState( private class CollapsingToolbarScaffoldStateSaver: Saver { override fun restore(value: Bundle): CollapsingToolbarScaffoldState = CollapsingToolbarScaffoldState( - CollapsingToolbarState(value.getInt("height", Int.MAX_VALUE)), + CollapsingToolbarState( + initialHeight = value.getInt("height", Int.MAX_VALUE), + initialMaxHeight = value.getInt("maxHeight", Int.MAX_VALUE), + initialMinHeight = value.getInt("minHeight", 0) + ), value.getInt("offsetY", 0) ) override fun SaverScope.save(value: CollapsingToolbarScaffoldState): Bundle = Bundle().apply { putInt("height", value.toolbarState.height) + putInt("minHeight", value.toolbarState.minHeight) + putInt("maxHeight", value.toolbarState.maxHeight) putInt("offsetY", value.offsetY) } }