Skip to content
This repository was archived by the owner on Mar 28, 2025. It is now read-only.

Infinite Number Picker #16

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

mhrohani1385
Copy link

Usation :

// Year Picker
InfiniteItemPicker(value = year, onValueChange = {
    year = it
}, infiniteGetter = InfiniteGetter(
    itemGetter = { index ->
        index + 2023
    }, inverseGetter = { value ->
        value - 2023
    }
)

```
InfiniteItemPicker(value = year, onValueChange = {
                    year = it
                }, infiniteGetter = InfiniteGetter(
                    itemGetter = { index ->
                        index + 2023
                    }, inverseGetter = { value ->
                        value - 2023
                    }
                )
```
@Gidrodinamika43
Copy link

@Composable
fun RingNumberPicker(
    modifier: Modifier = Modifier,
    label: (Int) -> String = {
        it.toString()
    },
    value: Int,
    onValueChange: (Int) -> Unit,
    dividersColor: Color = MaterialTheme.colorScheme.primary,
    range: IntRange,
    textStyle: TextStyle = LocalTextStyle.current,
){

    val min = Math.min(range.first, range.last)
    val max = Math.max(range.first, range.last) + 1
    val count = max - min

    InfiniteItemPicker(
        modifier = modifier,
        label = label,
        value = value,
        onValueChange = onValueChange,
        dividersColor = dividersColor,
        textStyle = textStyle,
        infiniteGetter = InfiniteGetter(
            itemGetter = { (it + min)%max },
            inverseGetter = { (it - min)%count + count }
        )
    )
}

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants