title: the method 'toDouble()' was called on a null in flutter
body: <p>So I am trying to get buttons like <a href="https://github.com/flutter-ui-challenges/flutter_web_challenge_googlemaps" rel="nofollow noreferrer">this as in the library</a> so so I tried to make the button as done in this library but I am getting an error I tried looking for the cause and found that it happens when I don't define some value in the double value so I did that but then also I was getting the same error.</p>
  
  <p>ui_helper.dart</p>
  
  <pre><code>import 'dart:core';
  
  /// ui standard
  final standardWidth = 375.0;
  final standardHeight = 815.0;
  
  /// late init
  double screenWidth;
  double screenHeight;
  
  /// scale [height] by [standardHeight]
  double realH(double height) {
  assert(screenHeight != 0.0);
  return height / standardHeight * screenHeight;
  }
  
  // scale [width] by [ standardWidth ]
  double realW(double width) {
   assert(screenWidth != 0.0);
   return width / standardWidth * screenWidth;
  }
  </code></pre>
  
  <p>MapButton.dart</p>
  
  <pre><code>class MapButton extends StatelessWidget {
  final double currentSearchPercent;
  final double currentExplorePercent;
  
   final double bottom;
  final double offsetX;
  final double width;
  final double height;
  
  final IconData icon;
  final Color iconColor;
  final bool isRight;
  final Gradient gradient;
  
  const MapButton(
    {Key key,
      this.currentSearchPercent,
      this.currentExplorePercent,
      this.bottom,
      this.offsetX,
      this.width,
      this.height,
      this.icon,
      this.iconColor,
      this.isRight = true,
      this.gradient})
    : assert(currentExplorePercent != null),
      assert(currentExplorePercent != null),
      assert(bottom != null),
      assert(offsetX != null),
      assert(width != null),
      assert(height != null),
      assert(icon != null),
      super(key: key);
  
  @override
  Widget build(BuildContext context) {
  return Positioned(
    bottom: realH(bottom),
    left: !isRight ? realW(offsetX * (currentExplorePercent + currentSearchPercent)) : null,
    right: isRight ? realW(offsetX * (currentExplorePercent + currentSearchPercent)) : null,
    child: Opacity(
      opacity: 1 - (currentSearchPercent + currentExplorePercent),
      child: Container(
        width: realW(width),
        height: realH(height),
        alignment: Alignment.centerLeft,
        padding: EdgeInsets.only(left: realW(17)),
        child: Icon(
          icon,
          size: realW(34),
          color: iconColor ?? Colors.black,
        ),
        decoration: BoxDecoration(
            color: gradient == null ? Colors.white : null,
            gradient: gradient,
            borderRadius: isRight
                ? BorderRadius.only(bottomLeft: Radius.circular(realW(36)), topLeft: Radius.circular(realW(36)))
                : BorderRadius.only(bottomRight: Radius.circular(realW(36)), topRight: Radius.circular(realW(36))),
            boxShadow: [
              BoxShadow(color: Color.fromRGBO(0, 0, 0, 0.3), blurRadius: realW(36)),
            ]),
      ),
    ),
  );
  }
  }
  </code></pre>
  
  <p>So these are the class I used from this library but it is not working so far.
  I called it like this </p>
  
  <pre><code>MapButton(
          currentExplorePercent: currentExplorePercent,
          currentSearchPercent: currentSearchPercent,
          bottom: 243.0,
          offsetX: -71.0,
          width: 71.0,
          height: 71.0,
          isRight: false,
          icon: Icons.layers,
        ),
  </code></pre>
  
  <p>I tried to run the library it was working fine. any help how to fix this.</p>