diff --git a/datetime-wheel-picker/src/commonMain/kotlin/dev/darkokoa/datetimewheelpicker/core/WheelPicker.kt b/datetime-wheel-picker/src/commonMain/kotlin/dev/darkokoa/datetimewheelpicker/core/WheelPicker.kt index 1c1b4ad..bd6a5ad 100644 --- a/datetime-wheel-picker/src/commonMain/kotlin/dev/darkokoa/datetimewheelpicker/core/WheelPicker.kt +++ b/datetime-wheel-picker/src/commonMain/kotlin/dev/darkokoa/datetimewheelpicker/core/WheelPicker.kt @@ -92,12 +92,16 @@ internal fun WheelPicker( } private fun calculateSnappedItemIndex(lazyListState: LazyListState): Int { - var currentItemIndex = lazyListState.firstVisibleItemIndex + val currentItemIndex = lazyListState.firstVisibleItemIndex + val itemCount = lazyListState.layoutInfo.totalItemsCount + val offset = lazyListState.firstVisibleItemScrollOffset + val itemHeight = lazyListState.layoutInfo.visibleItemsInfo.firstOrNull()?.size ?: return currentItemIndex - if (lazyListState.firstVisibleItemScrollOffset != 0) { - currentItemIndex++ + return if (offset > itemHeight / 2 && currentItemIndex < itemCount - 1) { + currentItemIndex + 1 + } else { + currentItemIndex } - return currentItemIndex } @Composable