From 2a93a9a371002cf2cce2b4085a7c1a599bb68f4c Mon Sep 17 00:00:00 2001 From: akhdanre Date: Sun, 25 May 2025 13:58:52 +0700 Subject: [PATCH] feat: adjusting on the quiz option --- lib/core/endpoint/api_endpoint.dart | 2 +- .../quiz_play/view/quiz_play_view.dart | 89 +++++++++++-------- 2 files changed, 51 insertions(+), 40 deletions(-) diff --git a/lib/core/endpoint/api_endpoint.dart b/lib/core/endpoint/api_endpoint.dart index 2b38099..d2ec9ad 100644 --- a/lib/core/endpoint/api_endpoint.dart +++ b/lib/core/endpoint/api_endpoint.dart @@ -1,5 +1,5 @@ class APIEndpoint { - static const String baseUrl = "http://192.168.110.43:5000"; + static const String baseUrl = "http://192.168.1.14:5000"; // static const String baseUrl = "http://103.193.178.121:5000"; static const String api = "$baseUrl/api"; diff --git a/lib/feature/quiz_play/view/quiz_play_view.dart b/lib/feature/quiz_play/view/quiz_play_view.dart index d12c9ed..9b9b834 100644 --- a/lib/feature/quiz_play/view/quiz_play_view.dart +++ b/lib/feature/quiz_play/view/quiz_play_view.dart @@ -4,6 +4,7 @@ import 'package:get/get.dart'; import 'package:quiz_app/app/const/colors/app_colors.dart'; import 'package:quiz_app/component/global_text_field.dart'; import 'package:quiz_app/data/models/quiz/question/option_question_model.dart'; +import 'package:quiz_app/data/models/quiz/question/true_false_question_model.dart'; import 'package:quiz_app/feature/quiz_play/controller/quiz_play_controller.dart'; class QuizPlayView extends GetView { @@ -11,31 +12,35 @@ class QuizPlayView extends GetView { @override Widget build(BuildContext context) { - return Scaffold( - backgroundColor: const Color(0xFFF9FAFB), - body: SafeArea( - child: Padding( - padding: const EdgeInsets.all(16), - child: Obx(() { - if (!controller.isStarting.value) { - return _buildCountdownScreen(context); - } + return PopScope( + canPop: false, + child: Scaffold( + backgroundColor: const Color(0xFFF9FAFB), + body: SafeArea( + child: Padding( + padding: const EdgeInsets.all(16), + child: Obx(() { + if (!controller.isStarting.value) { + return _buildCountdownScreen(context); + } - return ListView( - children: [ - _buildCustomAppBar(context), - const SizedBox(height: 20), - _buildProgressBar(), - const SizedBox(height: 20), - _buildQuestionIndicator(context), - const SizedBox(height: 12), - _buildQuestionText(), - const SizedBox(height: 30), - Expanded(child: _buildAnswerSection(context)), - _buildNextButton(context), - ], - ); - }), + return ListView( + children: [ + _buildCustomAppBar(context), + const SizedBox(height: 20), + _buildProgressBar(), + const SizedBox(height: 20), + _buildQuestionIndicator(context), + const SizedBox(height: 12), + _buildQuestionText(), + const SizedBox(height: 30), + _buildAnswerSection(context), + Spacer(), + _buildNextButton(context), + ], + ); + }), + ), ), ), ); @@ -305,22 +310,28 @@ class QuizPlayView extends GetView { final question = controller.currentQuestion; if (question is OptionQuestion) { - return AnimatedList( - initialItemCount: question.options.length, - itemBuilder: (context, index, animation) { - return SlideTransition( - position: Tween( - begin: const Offset(1, 0), - end: Offset.zero, - ).animate(CurvedAnimation( - parent: animation, - curve: Interval(index * 0.1, 1.0, curve: Curves.easeOut), - )), - child: _buildOptionButton(question.options[index], index), - ); - }, + return ConstrainedBox( + constraints: BoxConstraints( + minHeight: 100, + maxHeight: 300, + ), + child: AnimatedList( + initialItemCount: question.options.length, + itemBuilder: (context, index, animation) { + return SlideTransition( + position: Tween( + begin: const Offset(1, 0), + end: Offset.zero, + ).animate(CurvedAnimation( + parent: animation, + curve: Interval(index * 0.1, 1.0, curve: Curves.easeOut), + )), + child: _buildOptionButton(question.options[index], index), + ); + }, + ), ); - } else if (question.type == 'true_false') { + } else if (question is TrueFalseQuestion) { return Column( mainAxisAlignment: MainAxisAlignment.center, children: [