dreampad/lib/app/modules/home/views/explore_view.dart

202 lines
5.6 KiB
Dart
Raw Normal View History

2023-11-28 10:44:58 +08:00
import 'package:dreampad/app/shared/shared.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import '../controllers/home_controller.dart';
import '../widgets/user_widget.dart';
class ExploreView extends GetView<HomeController> {
const ExploreView({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Container(
decoration: const BoxDecoration(
image: DecorationImage(
image: Images.studyBg,
fit: BoxFit.fill,
),
),
child: Scaffold(
backgroundColor: Colors.transparent,
body: buildBody(context),
),
),
);
}
Widget buildBody(BuildContext context) {
return Stack(
children: [
Positioned(
left: 49.w,
top: 50.h,
child: UserWidget(
account: controller.account,
gender: controller.gender,
occupationName: controller.occupationName,
),
),
buildTitle(context),
Positioned(
right: 40.w,
top: 50.h,
child: GestureDetector(
onTap: () {
Get.back();
},
child: Images.studyHome,
),
),
Positioned(
bottom: 16.h,
left: 30.w,
child: Container(
height: 255.h,
width: 135.w,
decoration: const BoxDecoration(
image: DecorationImage(
image: Images.studyIp,
fit: BoxFit.fill,
),
),
),
),
Positioned(
top: 172.h,
left: 402.w,
child: Container(
height: 487.h,
width: 431.w,
decoration: const BoxDecoration(
image: DecorationImage(
image: Images.studyTreeBg,
fit: BoxFit.fill,
),
),
),
),
Positioned(
top: 284.h,
left: 52.w,
child: Container(
height: 138.w,
width: 294.w,
decoration: const BoxDecoration(
image: DecorationImage(
image: Images.welcomeDialog,
fit: BoxFit.fill,
),
),
padding: REdgeInsets.only(top: 27.0, left: 32.0, right: 19.0),
child: Text(
'每天要点亮2个知识点我们才能进行自由探索哦',
style: TextStyles.mediumWhite18,
),
),
),
buildKnowledge(context),
],
);
}
Widget buildTitle(BuildContext context) {
return Stack(
children: [
Positioned(
left: 370.w,
top: 0.h,
child: Container(
height: 72.h,
width: 437.w,
decoration: const BoxDecoration(
image: DecorationImage(
image: Images.studyTitleOccupation,
fit: BoxFit.fill,
),
),
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
const RSizedBox(
height: 6.0,
),
Text(
'梦想职业',
style: TextStyles.mediumWhiteShadow20_114,
),
Text(
controller.occupationName,
style: TextStyles.boldWhiteShadow26_002,
),
]),
),
),
Positioned(
left: 520.w,
top: 72.h,
child: Container(
height: 30.h,
width: 137.w,
decoration: const BoxDecoration(
image: DecorationImage(
image: Images.studyTitleTask,
fit: BoxFit.fill,
),
),
child: Center(
child: Text(
'第一天',
style: TextStyles.mediumWhite18,
),
),
),
),
],
);
}
Widget buildKnowledge(BuildContext context) {
2023-11-28 19:22:36 +08:00
return Obx(
() => Stack(
children: controller.knowledgePoints.map((e) {
return Positioned(
top: e.value.top!.h,
left: e.value.left != null ? e.value.left!.w : null,
right: e.value.right != null ? e.value.right!.w : null,
child: ConstrainedBox(
constraints: BoxConstraints(minWidth: 214.w, minHeight: 68.h),
child: GestureDetector(
onTap: () async {
await controller.leareKnowledge(e.value);
},
child: Container(
padding: REdgeInsets.symmetric(horizontal: 9.0),
decoration: BoxDecoration(
image: DecorationImage(
image: e.value.leared!
? Images.studyKnowledgePointPre
: Images.studyKnowledgePointDefault,
fit: BoxFit.fill,
),
2023-11-28 10:44:58 +08:00
),
2023-11-28 19:22:36 +08:00
child: Center(
child: Text(
e.value.title!,
style: e.value.leared!
? TextStyles.boldWhiteShadow22_104
: TextStyles.mediumColor22,
),
2023-11-28 10:44:58 +08:00
),
),
),
),
2023-11-28 19:22:36 +08:00
);
}).toList(),
),
2023-11-28 10:44:58 +08:00
);
}
}