56 lines
1.7 KiB
Dart
56 lines
1.7 KiB
Dart
// ignore_for_file: use_build_context_synchronously, depend_on_referenced_packages
|
|
|
|
import 'package:flutter/material.dart';
|
|
import 'package:get/get.dart';
|
|
import 'package:hgdj/assets_tool/app_colors.dart';
|
|
import 'package:hgdj/assets_tool/images.dart';
|
|
import 'package:hgdj/hj_page/splash/splash_ad_view.dart';
|
|
import 'package:hgdj/hj_page/splash/splash_logic.dart';
|
|
|
|
import '../../config/config.dart';
|
|
import '../../tools_base/loading/loading_alert_widget.dart';
|
|
|
|
class SplashPage extends StatelessWidget {
|
|
static const routeName = '/SplashPage';
|
|
const SplashPage({super.key});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return Scaffold(
|
|
//这里用 GetBuilder 主要是预加载背景图
|
|
body: GetBuilder<SplashLogic>(
|
|
init: SplashLogic(),
|
|
builder: (logic) => Stack(
|
|
fit: StackFit.expand,
|
|
children: [
|
|
Image.asset(
|
|
'ic_splash_bg.webp'.launchPath,
|
|
fit: BoxFit.fill,
|
|
width: Get.width,
|
|
height: Get.height,
|
|
),
|
|
if (logic.isAdLoaded || logic.adsList != null)
|
|
SplashAdView(
|
|
adData: logic.adsList,
|
|
callback: logic.onAdFinish,
|
|
),
|
|
const Positioned(
|
|
bottom: 20,
|
|
right: 20,
|
|
child: Text(
|
|
"V${Config.innerVersion}",
|
|
style: TextStyle(
|
|
color: AppColors.actionRed,
|
|
fontSize: 8,
|
|
),
|
|
),
|
|
),
|
|
//广告先结束、首页数据还没就绪时的过渡遮罩
|
|
if (logic.isAdDone) LoadingAlertWidget(title: '数据初始化中...'),
|
|
],
|
|
),
|
|
),
|
|
);
|
|
}
|
|
}
|