feat(scale): allow changing the default scale of the back card
This commit is contained in:
parent
ed0206f06e
commit
da53a10b88
|
|
@ -101,6 +101,7 @@ class Example extends StatelessWidget {
|
||||||
| duration | 200 milliseconds | The duration that every animation should last | false
|
| duration | 200 milliseconds | The duration that every animation should last | false
|
||||||
| maxAngle | 30 | Maximum angle the card reaches while swiping | false
|
| maxAngle | 30 | Maximum angle the card reaches while swiping | false
|
||||||
| threshold | 50 | Threshold from which the card is swiped away | false
|
| threshold | 50 | Threshold from which the card is swiped away | false
|
||||||
|
| scale | 0.9 | Scale of the card that is behind the front card | false
|
||||||
| isDisabled | false | Set to ```true``` if swiping should be disabled, has no impact when triggered from the outside | false
|
| isDisabled | false | Set to ```true``` if swiping should be disabled, has no impact when triggered from the outside | false
|
||||||
| onTapDisabled | - | Function that get triggered when the swiper is disabled | false
|
| onTapDisabled | - | Function that get triggered when the swiper is disabled | false
|
||||||
| onSwipe | - | Called with the new index and detected swipe direction when the user swiped | false
|
| onSwipe | - | Called with the new index and detected swipe direction when the user swiped | false
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@ class CardSwiper extends StatefulWidget {
|
||||||
/// threshold from which the card is swiped away
|
/// threshold from which the card is swiped away
|
||||||
final int threshold;
|
final int threshold;
|
||||||
|
|
||||||
|
/// scale of the card that is behind the front card
|
||||||
|
final double scale;
|
||||||
|
|
||||||
/// set to true if swiping should be disabled, exception: triggered from the outside
|
/// set to true if swiping should be disabled, exception: triggered from the outside
|
||||||
final bool isDisabled;
|
final bool isDisabled;
|
||||||
|
|
||||||
|
|
@ -47,6 +50,7 @@ class CardSwiper extends StatefulWidget {
|
||||||
this.duration = const Duration(milliseconds: 200),
|
this.duration = const Duration(milliseconds: 200),
|
||||||
this.maxAngle = 30,
|
this.maxAngle = 30,
|
||||||
this.threshold = 50,
|
this.threshold = 50,
|
||||||
|
this.scale = 0.9,
|
||||||
this.isDisabled = false,
|
this.isDisabled = false,
|
||||||
this.onTapDisabled,
|
this.onTapDisabled,
|
||||||
this.onSwipe,
|
this.onSwipe,
|
||||||
|
|
@ -64,6 +68,10 @@ class CardSwiper extends StatefulWidget {
|
||||||
direction != CardSwiperDirection.none,
|
direction != CardSwiperDirection.none,
|
||||||
'direction must not be none',
|
'direction must not be none',
|
||||||
),
|
),
|
||||||
|
assert(
|
||||||
|
scale >= 0 && scale <= 1,
|
||||||
|
'scale must be between 0 and 1',
|
||||||
|
),
|
||||||
super(key: key);
|
super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|
@ -76,7 +84,7 @@ class _CardSwiperState extends State<CardSwiper>
|
||||||
double _top = 0;
|
double _top = 0;
|
||||||
double _total = 0;
|
double _total = 0;
|
||||||
double _angle = 0;
|
double _angle = 0;
|
||||||
double _scale = 0.9;
|
late double _scale = widget.scale;
|
||||||
double _difference = 40;
|
double _difference = 40;
|
||||||
|
|
||||||
int _currentIndex = 0;
|
int _currentIndex = 0;
|
||||||
|
|
@ -257,7 +265,7 @@ class _CardSwiperState extends State<CardSwiper>
|
||||||
_top = 0;
|
_top = 0;
|
||||||
_total = 0;
|
_total = 0;
|
||||||
_angle = 0;
|
_angle = 0;
|
||||||
_scale = 0.9;
|
_scale = widget.scale;
|
||||||
_difference = 40;
|
_difference = 40;
|
||||||
_swipeType = SwipeType.none;
|
_swipeType = SwipeType.none;
|
||||||
});
|
});
|
||||||
|
|
@ -272,9 +280,10 @@ class _CardSwiperState extends State<CardSwiper>
|
||||||
}
|
}
|
||||||
|
|
||||||
void _calculateScale() {
|
void _calculateScale() {
|
||||||
if (_scale <= 1.0 && _scale >= 0.9) {
|
if (_scale <= 1.0 && _scale >= widget.scale) {
|
||||||
_scale =
|
_scale = (_total > 0)
|
||||||
(_total > 0) ? 0.9 + (_total / 5000) : 0.9 + -1 * (_total / 5000);
|
? widget.scale + (_total / 5000)
|
||||||
|
: widget.scale + -1 * (_total / 5000);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -394,7 +403,7 @@ class _CardSwiperState extends State<CardSwiper>
|
||||||
).animate(_animationController);
|
).animate(_animationController);
|
||||||
_scaleAnimation = Tween<double>(
|
_scaleAnimation = Tween<double>(
|
||||||
begin: _scale,
|
begin: _scale,
|
||||||
end: 0.9,
|
end: widget.scale,
|
||||||
).animate(_animationController);
|
).animate(_animationController);
|
||||||
_differenceAnimation = Tween<double>(
|
_differenceAnimation = Tween<double>(
|
||||||
begin: _difference,
|
begin: _difference,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue