Flutter 如何消除下面的NoSuchMethod错误
你好,我正在尝试实现一个卡片翻转动画。 根据下面的代码有三张卡。我犯了一个错误 NoSuchMethodError 对null调用了方法“/”。 收件人:空 已尝试呼叫:/(0.333) 代码Flutter 如何消除下面的NoSuchMethod错误,flutter,Flutter,你好,我正在尝试实现一个卡片翻转动画。 根据下面的代码有三张卡。我犯了一个错误 NoSuchMethodError 对null调用了方法“/”。 收件人:空 已尝试呼叫:/(0.333) 代码 class _CardFlipperState extends State<CardFlipper> { double scrollPercent; Offset startDrag; double startDragPercentScroll; double finishScrollStar
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);
class\u CardFlipperState扩展状态{
百分之二;
偏置标准差;
双星卷轴;
双完成滚动启动;
双端面;
动画控制器FinishScroll控制器;
void _onHorizontalDragStart(DragStart详细信息){
startDrag=详细信息。全局位置;
startDragPercentScroll=滚动百分比;
}
void _onHorizontalDragUpdate(DragUpdate详细信息){
最终currDrag=详细信息.globalPosition;
最终拖动距离=currDrag.dx-startDrag.dx;
最终单卡DragPercent=dragDistance/context.size.width;
最终numCards=3;
设置状态(){
滚动百分比=
(startDragPercentScroll+(singleCardDragPercent/numCards))
.夹具(0.0,1.0-(1/numCards));
});
}
水平图纸上的空白(图纸详图){
设置状态(){
startDrag=null;
startDragPercentScroll=null;
});
}
列表_buildCards(){
返回[
_构建卡(0,3,0%),
_构建卡(1,3,5%),
_构建卡(2,3,5%),
];
}
小部件构建卡(int cardIndex、int cardCount、双滚动百分比){
最终卡片滚动百分比=滚动百分比/(1/卡片计数);
最后一行似乎是问题所在,我只是不知道为什么。
我是新来的颤振
scrollPercent
没有初始化,用一些东西初始化它。在最后一行,dart试图计算null/1/3
事实上,你是对的。我还没有完全理解你初始化scrollPercent
的意思。你的答案是正确的。谢谢你已在第一个设置状态中初始化我不知道这是否是初始化它的正确方法。在此函数之外初始化它仍然不会改变任何东西。错误仍然存在。您是否尝试在变量声明处初始化变量double scrollPercent=0.0
?被截断的代码的格式不正确,因此很难看到,但是初始化scrollPercent的setState()
calll在方法void\u onHorizontalDragUpdate(DragUpdateDetails)
中。您确定在第一次调用\u buildCards()
之前调用过它吗?通常是“接受答案”,如果它帮助您解决了问题。