如何解决pageview.builder ,当我点击 option
我的问题页面没有跳转到下一个索引,动画播放但是当我单击选项按钮动画不会停止可能是问题动画但是当动画时间已满时出现错误位置 isnotEmpty 我该如何解决这个问题我做了所有的一部分应用程序刚刚离开此页面,我没有找到任何解决方案,如果有人知道你能帮我吗
physics: NeverScrollableScrollPhysics(),controller: _controller.pageController,itemCount: snapshot.data.docs.length,onPageChanged: _controller.updateTheQnNum,itemBuilder: (context,index){
return GetxPlayCard(
index: index,questionModel: getQuestionModelFromDataSnapshot(snapshot.data.docs[index]),);
},);
GestureDetector(
onTap: () async{
if (!widget.questionModel.answered) {
if (widget.questionModel.option1 ==
widget.questionModel.correctOption) {
optionSelected = widget.questionModel.option1;
widget.questionModel.answered = true;
_correct = _correct + 1;
_notAttempted = _notAttempted - 1;
setState(() {});
Future.delayed(Duration(seconds: 3),() {
return _controller.nextQuestion;
});
} else {
optionSelected = widget.questionModel.option1;
widget.questionModel.answered = true;
_incorrect = _incorrect + 1;
setState(() {});
Future.delayed(Duration(seconds: 3),() {
return _controller.nextQuestion;
});
}
}
},child: GetxOption(
corrextAnswer: widget.questionModel.correctOption,description: widget.questionModel.option1,option: 'A',optionSelected: optionSelected,),class ControllerQuestion extends GetxController
with SingleGetTickerProviderMixin {
AnimationController animationController;
Animation animation;
Animation get animationn => this.animation;
PageController pageController;
int total = 0;
int _correct = 0;
int _incorrect = 0;
int _notAttempted = 0;
String optionSelected = "";
RxInt _questionNumber = 1.obs;
RxInt get questionNumber => this._questionNumber;
@override
void onInit() {
animationController =
AnimationController(duration: Duration(seconds: 60),vsync: this);
animation = Tween<double>(begin: 0,end: 1).animate(animationController)
..addListener(() {
// update like setState
update();
});
animationController.forward().then((_) {
nextQuestion;
});
pageController = PageController();
super.onInit();
}
@override
void onClose() {
super.onClose();
animationController.dispose();
pageController.dispose();
}
QuestionModel questionModel;
BuildContext context;
int index;
Future<void> nextQuestion(questionnumber,indexx) async {
if (questionnumber != indexx) {
pageController.nextPage(
duration: Duration(milliseconds: 200),curve: Curves.elasticIn);
update();
animationController.reset();
animationController.forward().then((_) {
nextQuestion(questionnumber,indexx);
});
update();
} else {
Navigator.pushReplacement(
context,MaterialPageRoute(
builder: (context) => Resultst(
total: total,correct: _correct,incorrect: _incorrect)));
}
}
void updateTheQnNum(int index) {
_questionNumber.value = index + 1;
update();
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。