首页 > 解决方案 > 你如何摆脱下面的 NoSuchMethodError

问题描述

您好我正在尝试实现卡片翻转动画。根据以下代码,共有三张卡。我收到一个错误 NoSuchMethodError 在 null 上调用了方法“/”。Receiver:null 尝试调用:/(0.333333333)

编码

class _CardFlipperState extends State<CardFlipper> {
double scrollPercent;
Offset startDrag;
double startDragPercentScroll;
double finishScrollStart;
double finishScrollEnd;
AnimationController finishScrollController;

void _onHorizontalDragStart(DragStartDetails details) {
startDrag = details.globalPosition;
startDragPercentScroll = scrollPercent;
}

void _onHorizontalDragUpdate(DragUpdateDetails details) {
final currDrag = details.globalPosition;
final dragDistance = currDrag.dx - startDrag.dx;
final singleCardDragPercent = dragDistance / context.size.width;

final numCards = 3;

setState(() {
  scrollPercent =
      (startDragPercentScroll + (singleCardDragPercent / numCards))
          .clamp(0.0, 1.0 - (1 / numCards));
 });
 }

 void _onHorizontalDragEnd(DragEndDetails details) {


 setState(() {
  startDrag = null;
  startDragPercentScroll = null;
  });
  }

  List<Widget> _buildCards() {
  return [
  _buildCard(0, 3, scrollPercent),
  _buildCard(1, 3, scrollPercent),
  _buildCard(2, 3, scrollPercent),

   ];
   }

   Widget _buildCard(int cardIndex, int cardCount, double scrollPercent) {
   final cardScrollPercent = scrollPercent / (1 / cardCount);

最后一行似乎是我无法弄清楚原因的问题。我是颤振新手

标签: flutter

解决方案


scrollPercent没有初始化,用一些东西初始化它。在最后一行 dart 最终试图评估null / 1 / 3.


推荐阅读