): String @Composable fun rememberScrollState( initial: Int = 0 ): ScrollState Emit content @Composable fun Button(...) @Composable fun Column(...) @Composable fun LaunchedEffect(...)
Dp val MinHeight: Dp val IconSize: Dp val IconSpacing: Dp val shape: Shape @Composable get @Composable fun buttonColors(...): ButtonColors = ButtonColors(...) @Composable fun buttonElevation(...): ButtonElevation = ButtonElevation(...) }
scrollPosition: Int = 0, scrollRange: Int = 0, ) : VerticalScrollerState { override var scrollPosition: Int by mutableStateOf(scrollPosition) override var scrollRange: Int by mutableStateOf(scrollRange) }
VerticalScrollerState = VerticalScrollerStateImpl() private class VerticalScrollerStateImpl( scrollPosition: Int = 0, scrollRange: Int = 0, ) : VerticalScrollerState { override var scrollPosition: Int by mutableStateOf(scrollPosition) override var scrollRange: Int by mutableStateOf(scrollRange) }
VerticalScrollerState() } ) fun VerticalScrollerState(): VerticalScrollerState = VerticalScrollerStateImpl() private class VerticalScrollerStateImpl( scrollPosition: Int = 0, scrollRange: Int = 0, ) : VerticalScrollerState { override var scrollPosition: Int by mutableStateOf(scrollPosition) override var scrollRange: Int by mutableStateOf(scrollRange) }
VerticalScrollerState() } ) fun VerticalScrollerState(): VerticalScrollerState = VerticalScrollerStateImpl() @Stable interface VerticalScrollerState { var scrollPosition: Int var scrollRange: Int } private class VerticalScrollerStateImpl ( scrollPosition: Int = 0, scrollRange: Int = 0, ) : VerticalScrollerState { override var scrollPosition: Int by mutableStateOf(scrollPosition)
In order of appearance 🞄 jb.gg/composition-locals 🞄 jb.gg/compose-modifiers 🞄 jb.gg/movable-content-of 🞄 jb.gg/debugging-recomposition 🞄 jb.gg/compose-stability 🞄 jb.gg/compose-rules Composing an API the Right way Brian Wangi @dev_brian