Flutter:测验应用程序导航下一个问题的计时器出现问题
Flutter: Problem in timer for quiz app to navigate next question
我为测验应用程序创建了 flutter android 应用程序
quiz_app
问题和答案以及问题的时间保存在地图中是这样的:
static List<int> quesIds = [1, 2, 3, 4, 5];
static Map<int, String> ques = {
1: "question 1",
2: "question 2",
3: "question 3",
4: "question 4",
5: "question 5",
};
static Map<int, String> times = {1: "30", 2: "20", 3: "60", 4: "40", 5: "30"};
static Map<int, Map<int, String>> ans = {
1: {1: "ans1-1", 2: "ans1-2", 3: "ans1-3"},
2: {4: "ans2-1", 5: "ans2-2", 6: "ans2-3"},
3: {7: "ans3-1", 8: "ans3-2", 9: "ans3-3"},
4: {10: "ans4-1", 11: "ans4-2", 12: "ans4-3"},
5: {13: "ans5-1", 14: "ans5-2", 15: "ans5-3"},
};
我希望计时器方法在问题显示时开始倒计时并在计时器结束时导航到下一个问题,但是当用户在时间结束前单击下一个按钮时,计时器停止并使用下一个问题的新计时器倒计时导航到下一个问题.
当您的计数器值达到您想要的时间时创建一个计时器函数更改问题并重置计数器值
int _counter = 10;
Timer _timer;
void _startTimer() {
_counter = 10;
if (_timer != null) {
_timer.cancel();
}
_timer = Timer.periodic(Duration(seconds: 1), (timer) {
setState(() {
if (_counter > 0) {
_counter--;
} else {
_timer.cancel();
}
});
});
}
我为测验应用程序创建了 flutter android 应用程序 quiz_app 问题和答案以及问题的时间保存在地图中是这样的:
static List<int> quesIds = [1, 2, 3, 4, 5];
static Map<int, String> ques = {
1: "question 1",
2: "question 2",
3: "question 3",
4: "question 4",
5: "question 5",
};
static Map<int, String> times = {1: "30", 2: "20", 3: "60", 4: "40", 5: "30"};
static Map<int, Map<int, String>> ans = {
1: {1: "ans1-1", 2: "ans1-2", 3: "ans1-3"},
2: {4: "ans2-1", 5: "ans2-2", 6: "ans2-3"},
3: {7: "ans3-1", 8: "ans3-2", 9: "ans3-3"},
4: {10: "ans4-1", 11: "ans4-2", 12: "ans4-3"},
5: {13: "ans5-1", 14: "ans5-2", 15: "ans5-3"},
};
我希望计时器方法在问题显示时开始倒计时并在计时器结束时导航到下一个问题,但是当用户在时间结束前单击下一个按钮时,计时器停止并使用下一个问题的新计时器倒计时导航到下一个问题.
当您的计数器值达到您想要的时间时创建一个计时器函数更改问题并重置计数器值
int _counter = 10;
Timer _timer;
void _startTimer() {
_counter = 10;
if (_timer != null) {
_timer.cancel();
}
_timer = Timer.periodic(Duration(seconds: 1), (timer) {
setState(() {
if (_counter > 0) {
_counter--;
} else {
_timer.cancel();
}
});
});
}