Skip to content

Commit

Permalink
Merge 70533f8 into 1cdf19f
Browse files Browse the repository at this point in the history
  • Loading branch information
MarcinusX committed Apr 13, 2021
2 parents 1cdf19f + 70533f8 commit cd33556
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 5 deletions.
3 changes: 2 additions & 1 deletion CHANGELOG.md
Expand Up @@ -2,7 +2,8 @@

## [2.1.0]

* Added missing params in decimal numberpicker #99
* Added missing params in decimal numberpicker. #99
* Fixed `itemCount` parameter to actually work. #87

## [2.0.1]

Expand Down
12 changes: 8 additions & 4 deletions lib/src/numberpicker.dart
Expand Up @@ -94,7 +94,8 @@ class _NumberPickerState extends State<NumberPicker> {
void _scrollListener() {
final indexOfMiddleElement =
(_scrollController.offset / itemExtent).round().clamp(0, itemCount - 1);
final intValueInTheMiddle = _intValueFromIndex(indexOfMiddleElement + 1);
final intValueInTheMiddle =
_intValueFromIndex(indexOfMiddleElement + additionalItemsOnEachSide);

if (widget.value != intValueInTheMiddle) {
widget.onChanged(intValueInTheMiddle);
Expand Down Expand Up @@ -129,7 +130,9 @@ class _NumberPickerState extends State<NumberPicker> {

int get itemCount => (widget.maxValue - widget.minValue) ~/ widget.step + 1;

int get listItemsCount => itemCount + 2;
int get listItemsCount => itemCount + 2 * additionalItemsOnEachSide;

int get additionalItemsOnEachSide => (widget.itemCount - 1) ~/ 2;

@override
Widget build(BuildContext context) {
Expand Down Expand Up @@ -174,7 +177,8 @@ class _NumberPickerState extends State<NumberPicker> {
themeData.textTheme.headline5?.copyWith(color: themeData.accentColor);

final value = _intValueFromIndex(index);
final isExtra = index == 0 || index == listItemsCount - 1;
final isExtra = index < additionalItemsOnEachSide ||
index >= listItemsCount - additionalItemsOnEachSide;
final itemStyle = value == widget.value ? selectedStyle : defaultStyle;

final child = isExtra
Expand Down Expand Up @@ -204,7 +208,7 @@ class _NumberPickerState extends State<NumberPicker> {
}

int _intValueFromIndex(int index) {
index--;
index -= additionalItemsOnEachSide;
index %= itemCount;
return widget.minValue + index * widget.step;
}
Expand Down

0 comments on commit cd33556

Please sign in to comment.