Indicator constructor

const Indicator({
  1. required double triggerOffset,
  2. required bool clamping,
  3. Duration processedDuration = const Duration(seconds: 1),
  4. bool safeArea = true,
  5. SpringDescription? spring,
  6. SpringBuilder? readySpringBuilder,
  7. bool springRebound = true,
  8. FrictionFactor? frictionFactor,
  9. double? infiniteOffset,
  10. bool? hitOver,
  11. bool? infiniteHitOver,
  12. IndicatorPosition position = IndicatorPosition.above,
  13. double? secondaryTriggerOffset,
  14. bool hapticFeedback = false,
  15. double secondaryVelocity = kDefaultSecondaryVelocity,
  16. double? secondaryDimension,
  17. double secondaryCloseTriggerOffset = 70,
})

Implementation

const Indicator({
  required this.triggerOffset,
  required this.clamping,
  this.processedDuration = const Duration(seconds: 1),
  this.safeArea = true,
  this.spring,
  this.readySpringBuilder,
  this.springRebound = true,
  this.frictionFactor,
  this.infiniteOffset,
  bool? hitOver,
  bool? infiniteHitOver,
  this.position = IndicatorPosition.above,
  this.secondaryTriggerOffset,
  this.hapticFeedback = false,
  this.secondaryVelocity = kDefaultSecondaryVelocity,
  this.secondaryDimension,
  this.secondaryCloseTriggerOffset = 70,
})  : hitOver = hitOver ?? infiniteOffset != null,
      infiniteHitOver = infiniteHitOver ?? infiniteOffset == null,
      assert(infiniteOffset == null || infiniteOffset >= 0,
          'The infiniteOffset cannot be less than 0.'),
      assert(infiniteOffset == null || !clamping,
          'Cannot scroll indefinitely when clamping.'),
      assert(!(hitOver == false && infiniteOffset != null),
          'When hitOver is true, infinite scrolling cannot be used, please set infiniteHitOver.'),
      assert(!clamping || position != IndicatorPosition.locator,
          'Cannot use locator when clamping.'),
      assert(
          secondaryTriggerOffset == null ||
              secondaryTriggerOffset > triggerOffset,
          'The secondaryTriggerOffset cannot be less than triggerOffset.'),
      assert(!(infiniteOffset != null && secondaryTriggerOffset != null),
          'Infinite scroll and secondary cannot be used together.'),
      assert(
          secondaryDimension == null ||
              secondaryDimension > (secondaryTriggerOffset ?? 0),
          'The secondaryDimension cannot be less than secondaryTriggerOffset.');