flutter - pageview.builder ,当我点击选项时没有错误但页面没有改变
问题描述
我的问题页面没有跳转到下一个索引,动画播放但是当我单击选项按钮动画时不会停止可能是问题动画但是当动画时间满时得到一个错误位置 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();
}
}
解决方案
推荐阅读
- jenkins - 将 jenkins 与 GoCD 集成
- javascript - 如何优化 useReducer 中对象数组的更新?
- python - 'TikTokApi' 对象没有属性'region'
- javascript - 跟进:我有 2 个单选按钮,我想将不同的 ajax 页面加载到 div 元素中,具体取决于选择哪个
- python - 在不使用熊猫的情况下逐行读取后清理文本文件数据
- salesforce - 限制休假用户的访问
- heroku - 如何在两个 Heroku 域之间设置 cookie?
- c++ - 将指向部分构造对象的指针转换为指向基类的指针是否合法?
- google-sheets - 将 Google 电子表格中的联系人添加到 Google 通讯录时出错
- android - 如何使用翻译动画移动图像?(将图像从一个位置移动到另一个位置)