Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Refactored PickerLayoutManager to improve how items scale and how the selected item is determined. Previously, the scaling logic wasn’t as smooth as it could be, so I tweaked it to ensure a more natural effect when scrolling. I also replaced the old method of selecting the most visible item with a new approach that accurately finds the item closest to the center using getCenteredView(), which makes selection much more precise.
Added a setCurrentItem() method that lets me programmatically scroll to a specific item, either instantly or with smooth scrolling. It also includes checks to prevent crashes if an invalid index is passed.
To make things more stable, I wrapped onLayoutChildren() in a try-catch block to prevent crashes and added proper logging so errors can be debugged easily. Also cleaned up the code a bit—renamed some variables, added @nonnull annotations, and reformatted things to make it more readable. Overall, these changes make PickerLayoutManager more reliable and easier to use.