修复部分问题,优化部分代码
This commit is contained in:
parent
f632ea9643
commit
7087882d46
@ -54,7 +54,7 @@ android {
|
|||||||
// You can update the following values to match your application needs.
|
// You can update the following values to match your application needs.
|
||||||
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
|
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
|
||||||
// minSdkVersion flutter.minSdkVersion
|
// minSdkVersion flutter.minSdkVersion
|
||||||
minSdkVersion 19
|
minSdkVersion flutter.minSdkVersion
|
||||||
targetSdkVersion flutter.targetSdkVersion
|
targetSdkVersion flutter.targetSdkVersion
|
||||||
versionCode flutterVersionCode.toInteger()
|
versionCode flutterVersionCode.toInteger()
|
||||||
versionName flutterVersionName
|
versionName flutterVersionName
|
||||||
|
|||||||
@ -2908,11 +2908,6 @@
|
|||||||
"previewThumb": "https://resource-sg-public.lux-ad.com/wallpaper/9f275c8eba3d137304a5f8de5d0a378a.jpg",
|
"previewThumb": "https://resource-sg-public.lux-ad.com/wallpaper/9f275c8eba3d137304a5f8de5d0a378a.jpg",
|
||||||
"source": "https://resource-sg-public.lux-ad.com/wallpaper/45f776f83fa4cbd8ecb0663337a9bc1b.jpg"
|
"source": "https://resource-sg-public.lux-ad.com/wallpaper/45f776f83fa4cbd8ecb0663337a9bc1b.jpg"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"original": "https://resource-sg-public.lux-ad.com/wallpaper/cadf45fd51c10bd72be33dfb368b996c.jpg",
|
|
||||||
"previewThumb": "https://resource-sg-public.lux-ad.com/wallpaper/590c191d1cd869cef10e1b16a6b8ee85.jpg",
|
|
||||||
"source": "https://resource-sg-public.lux-ad.com/wallpaper/fd2aedaae00914150d382be1b28e2b20.jpg"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"original": "https://resource-sg-public.lux-ad.com/wallpaper/8305a11b0e15251d5b3739a918240ecc.jpg",
|
"original": "https://resource-sg-public.lux-ad.com/wallpaper/8305a11b0e15251d5b3739a918240ecc.jpg",
|
||||||
"previewThumb": "https://resource-sg-public.lux-ad.com/wallpaper/2a9207fe180aa469148ab08fd8d5b3ea.jpg",
|
"previewThumb": "https://resource-sg-public.lux-ad.com/wallpaper/2a9207fe180aa469148ab08fd8d5b3ea.jpg",
|
||||||
|
|||||||
@ -38,9 +38,9 @@ class BaseAppBar extends StatelessWidget implements PreferredSizeWidget {
|
|||||||
child: Material(
|
child: Material(
|
||||||
color: Colors.transparent,
|
color: Colors.transparent,
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: onBackTap ?? () async {
|
onTap: onBackTap ?? () {
|
||||||
await ApplovinManage().showAdIfReady(ApplovinManage().adUnitId3);
|
|
||||||
Get.back();
|
Get.back();
|
||||||
|
ApplovinManage().showAdIfReady(ApplovinManage().adUnitId3);
|
||||||
},
|
},
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding: const EdgeInsets.all(10).w,
|
padding: const EdgeInsets.all(10).w,
|
||||||
|
|||||||
@ -41,7 +41,7 @@ void main() async {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// 初始化广告sdk
|
// 初始化广告sdk
|
||||||
// await ApplovinManage().initApplovin();
|
await ApplovinManage().initApplovin();
|
||||||
|
|
||||||
// 初始化Hive
|
// 初始化Hive
|
||||||
await initHive();
|
await initHive();
|
||||||
|
|||||||
@ -6,8 +6,10 @@ import 'package:hello_wallpaper/generated/assets.dart';
|
|||||||
import 'package:hello_wallpaper/modules/about/about_controller.dart';
|
import 'package:hello_wallpaper/modules/about/about_controller.dart';
|
||||||
import 'package:hello_wallpaper/res/values/strings.dart';
|
import 'package:hello_wallpaper/res/values/strings.dart';
|
||||||
|
|
||||||
class AboutView extends GetView<AboutController> {
|
class AboutView extends StatelessWidget {
|
||||||
const AboutView({super.key});
|
AboutView({super.key});
|
||||||
|
|
||||||
|
final controller = Get.find<AboutController>();
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
|||||||
@ -41,13 +41,17 @@ class CatalogController extends GetxController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// 进入分类详情页面
|
||||||
void onTapSingleCls(WallpaperModel wallpaperModel) {
|
void onTapSingleCls(WallpaperModel wallpaperModel) {
|
||||||
// 进入分类详情页面
|
|
||||||
Get.toNamed(AppPages.clsDet, arguments: wallpaperModel);
|
Get.toNamed(AppPages.clsDet, arguments: wallpaperModel);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// 点击壁纸
|
/// 点击壁纸
|
||||||
void onTapItem(List<WallpaperData> wallpaperList, int index) {
|
void onTapItem(String clsName, List<WallpaperData> wallpaperList, int index) {
|
||||||
Get.toNamed(AppPages.wallpaperDet, arguments: {'position': index, 'wallpaperList': wallpaperList});
|
Get.toNamed(AppPages.wallpaperDet, arguments: {
|
||||||
|
'position': index,
|
||||||
|
'wallpaperList': wallpaperList,
|
||||||
|
'heroTag': 'Catalog-$clsName-$index',
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:hello_wallpaper/common/components/image_network_widget.dart';
|
import 'package:hello_wallpaper/common/components/image_network_widget.dart';
|
||||||
|
import 'package:hello_wallpaper/common/components/keep_alive_wrapper.dart';
|
||||||
import 'package:hello_wallpaper/models/wallpaper_model.dart';
|
import 'package:hello_wallpaper/models/wallpaper_model.dart';
|
||||||
import 'package:hello_wallpaper/modules/catalog/catalog_controller.dart';
|
import 'package:hello_wallpaper/modules/catalog/catalog_controller.dart';
|
||||||
|
|
||||||
@ -91,7 +92,7 @@ class CatalogView extends GetView<CatalogController> {
|
|||||||
scrollDirection: Axis.horizontal,
|
scrollDirection: Axis.horizontal,
|
||||||
itemCount: wallpaperList.length,
|
itemCount: wallpaperList.length,
|
||||||
itemBuilder: (context, index) {
|
itemBuilder: (context, index) {
|
||||||
return _buildWallpaperItem(wallpaperList, wallpaperList[index], index);
|
return _buildWallpaperItem('${item.name}', wallpaperList, wallpaperList[index], index);
|
||||||
},
|
},
|
||||||
separatorBuilder: (context, index) {
|
separatorBuilder: (context, index) {
|
||||||
return SizedBox(width: 8.w);
|
return SizedBox(width: 8.w);
|
||||||
@ -103,11 +104,12 @@ class CatalogView extends GetView<CatalogController> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildWallpaperItem(List<WallpaperData> wallpaperList, WallpaperData item, int index) {
|
Widget _buildWallpaperItem(String clsName, List<WallpaperData> wallpaperList, WallpaperData item, int index) {
|
||||||
return GestureDetector(
|
return GestureDetector(
|
||||||
onTap: () => controller.onTapItem(wallpaperList, index),
|
onTap: () => controller.onTapItem(clsName, wallpaperList, index),
|
||||||
child: Hero(
|
child: Hero(
|
||||||
tag: '$index-${item.original}',
|
tag: 'Catalog-$clsName-$index',
|
||||||
|
child: KeepAliveWrapper(
|
||||||
child: ImageNetworkWidget(
|
child: ImageNetworkWidget(
|
||||||
url: item.previewThumb,
|
url: item.previewThumb,
|
||||||
width: 136.w,
|
width: 136.w,
|
||||||
@ -115,6 +117,7 @@ class CatalogView extends GetView<CatalogController> {
|
|||||||
radius: 8.r,
|
radius: 8.r,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -16,6 +16,10 @@ class ClsDetController extends GetxController {
|
|||||||
|
|
||||||
/// 点击壁纸
|
/// 点击壁纸
|
||||||
void onTapItem(int index) {
|
void onTapItem(int index) {
|
||||||
Get.toNamed(AppPages.wallpaperDet, arguments: {'position': index, 'wallpaperList': wallpaperDataList});
|
Get.toNamed(AppPages.wallpaperDet, arguments: {
|
||||||
|
'position': index,
|
||||||
|
'wallpaperList': wallpaperDataList,
|
||||||
|
'heroTag': 'ClsDet-$index',
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -7,8 +7,10 @@ import 'package:hello_wallpaper/common/components/navigation_bar/base_appbar.dar
|
|||||||
import 'package:hello_wallpaper/models/wallpaper_model.dart';
|
import 'package:hello_wallpaper/models/wallpaper_model.dart';
|
||||||
import 'package:hello_wallpaper/modules/cls_det/cls_det_controller.dart';
|
import 'package:hello_wallpaper/modules/cls_det/cls_det_controller.dart';
|
||||||
|
|
||||||
class ClsDetView extends GetView<ClsDetController> {
|
class ClsDetView extends StatelessWidget {
|
||||||
const ClsDetView({super.key});
|
ClsDetView({super.key});
|
||||||
|
|
||||||
|
final controller = Get.find<ClsDetController>();
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
@ -30,11 +32,11 @@ class ClsDetView extends GetView<ClsDetController> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildDiscoverItem(WallpaperData item, index) {
|
Widget _buildDiscoverItem(WallpaperData item, int index) {
|
||||||
return GestureDetector(
|
return GestureDetector(
|
||||||
onTap: () => controller.onTapItem(index),
|
onTap: () => controller.onTapItem(index),
|
||||||
child: Hero(
|
child: Hero(
|
||||||
tag: '$index-${item.original}',
|
tag: 'ClsDet-$index',
|
||||||
child: ImageNetworkWidget(
|
child: ImageNetworkWidget(
|
||||||
url: item.previewThumb,
|
url: item.previewThumb,
|
||||||
radius: 8.r,
|
radius: 8.r,
|
||||||
|
|||||||
@ -14,8 +14,10 @@ class DiscoverController extends GetxController {
|
|||||||
var wallpaperDataList = <WallpaperData>[];
|
var wallpaperDataList = <WallpaperData>[];
|
||||||
var todayNewestList = <WallpaperData>[];
|
var todayNewestList = <WallpaperData>[];
|
||||||
WallpaperModel? todayNewestData;
|
WallpaperModel? todayNewestData;
|
||||||
|
|
||||||
/// 分类名称
|
/// 分类名称
|
||||||
var clsName = '';
|
var clsName = '';
|
||||||
|
|
||||||
/// 页码、每页数量
|
/// 页码、每页数量
|
||||||
int pageNum = 1;
|
int pageNum = 1;
|
||||||
int pageSize = 10;
|
int pageSize = 10;
|
||||||
@ -29,14 +31,18 @@ class DiscoverController extends GetxController {
|
|||||||
|
|
||||||
void getData() {
|
void getData() {
|
||||||
todayNewestData = HomeController.to.getRandomCls();
|
todayNewestData = HomeController.to.getRandomCls();
|
||||||
if (todayNewestData != null && todayNewestData!.data != null && todayNewestData!.data!.length >= 3) {
|
if (todayNewestData != null &&
|
||||||
|
todayNewestData!.data != null &&
|
||||||
|
todayNewestData!.data!.length >= 3) {
|
||||||
clsName = ObjUtil.getStr(todayNewestData!.name);
|
clsName = ObjUtil.getStr(todayNewestData!.name);
|
||||||
var flatList = todayNewestData!.data!.map((e) => e).toList();
|
var flatList = todayNewestData!.data!.map((e) => e).toList();
|
||||||
// 随机打乱此列表中的元素,再取前3个元素
|
// 随机打乱此列表中的元素,再取前3个元素
|
||||||
todayNewestList = (flatList..shuffle()).take(3).toList();
|
todayNewestList = (flatList..shuffle()).take(3).toList();
|
||||||
}
|
}
|
||||||
viewState = HomeController.to.viewState;
|
viewState = HomeController.to.viewState;
|
||||||
allWallpaper = HomeController.to.wallpaperModelList.expand((element) => element.data ?? <WallpaperData>[]).toList();
|
allWallpaper = HomeController.to.wallpaperModelList
|
||||||
|
.expand((element) => element.data ?? <WallpaperData>[])
|
||||||
|
.toList();
|
||||||
// 打乱List顺序
|
// 打乱List顺序
|
||||||
allWallpaper.shuffle();
|
allWallpaper.shuffle();
|
||||||
_getDataToShow();
|
_getDataToShow();
|
||||||
@ -66,12 +72,15 @@ class DiscoverController extends GetxController {
|
|||||||
|
|
||||||
/// 点击今日最新
|
/// 点击今日最新
|
||||||
void onTapTodayNewest() {
|
void onTapTodayNewest() {
|
||||||
// 进入分类详情页面
|
|
||||||
Get.toNamed(AppPages.clsDet, arguments: todayNewestData);
|
Get.toNamed(AppPages.clsDet, arguments: todayNewestData);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// 点击壁纸
|
/// 点击壁纸
|
||||||
void onTapItem(int index) {
|
void onTapItem(int index) {
|
||||||
Get.toNamed(AppPages.wallpaperDet, arguments: {'position': index, 'wallpaperList': wallpaperDataList});
|
Get.toNamed(AppPages.wallpaperDet, arguments: {
|
||||||
|
'position': index,
|
||||||
|
'wallpaperList': wallpaperDataList,
|
||||||
|
'heroTag': 'Discover-$index',
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -53,11 +53,11 @@ class DiscoverView extends GetView<DiscoverController> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildDiscoverItem(WallpaperData item, index) {
|
Widget _buildDiscoverItem(WallpaperData item, int index) {
|
||||||
return GestureDetector(
|
return GestureDetector(
|
||||||
onTap: () => controller.onTapItem(index),
|
onTap: () => controller.onTapItem(index),
|
||||||
child: Hero(
|
child: Hero(
|
||||||
tag: '$index-${item.original}',
|
tag: 'Discover-$index',
|
||||||
child: ImageNetworkWidget(
|
child: ImageNetworkWidget(
|
||||||
url: item.previewThumb,
|
url: item.previewThumb,
|
||||||
radius: 8.r,
|
radius: 8.r,
|
||||||
|
|||||||
@ -54,6 +54,7 @@ class FavoriteController extends GetxController {
|
|||||||
Get.toNamed(AppPages.wallpaperDet, arguments: {
|
Get.toNamed(AppPages.wallpaperDet, arguments: {
|
||||||
'position': index,
|
'position': index,
|
||||||
'wallpaperList': isFavorite ? favoriteList : todayHottestList,
|
'wallpaperList': isFavorite ? favoriteList : todayHottestList,
|
||||||
|
'heroTag': '${isFavorite ? 'Favorite' : 'TodayHottest'}-$index',
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -89,8 +90,8 @@ class FavoriteController extends GetxController {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// 进入分类详情页面
|
||||||
void onTapViewMore() {
|
void onTapViewMore() {
|
||||||
// 进入分类详情页面
|
|
||||||
Get.toNamed(AppPages.clsDet, arguments: todayHottestData);
|
Get.toNamed(AppPages.clsDet, arguments: todayHottestData);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -56,7 +56,7 @@ class FavoriteView extends GetView<FavoriteController> {
|
|||||||
onTap: () => controller.onTapItem(index, true),
|
onTap: () => controller.onTapItem(index, true),
|
||||||
onLongPress: () => controller.onLongPress(index),
|
onLongPress: () => controller.onLongPress(index),
|
||||||
child: Hero(
|
child: Hero(
|
||||||
tag: '$index-${item.original}',
|
tag: 'Favorite-$index',
|
||||||
child: ImageNetworkWidget(
|
child: ImageNetworkWidget(
|
||||||
url: item.previewThumb,
|
url: item.previewThumb,
|
||||||
radius: 8.r,
|
radius: 8.r,
|
||||||
@ -88,7 +88,7 @@ class FavoriteView extends GetView<FavoriteController> {
|
|||||||
child: GestureDetector(
|
child: GestureDetector(
|
||||||
onTap: () => controller.onTapItem(e.key, false),
|
onTap: () => controller.onTapItem(e.key, false),
|
||||||
child: Hero(
|
child: Hero(
|
||||||
tag: '${e.key}-${e.value.original}',
|
tag: 'TodayHottest-${e.key}',
|
||||||
child: ImageNetworkWidget(
|
child: ImageNetworkWidget(
|
||||||
url: e.value.previewThumb,
|
url: e.value.previewThumb,
|
||||||
height: 183.h,
|
height: 183.h,
|
||||||
|
|||||||
@ -70,9 +70,9 @@ class HomeController extends GetxController with WidgetsBindingObserver {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// 点击BottomNavigationBar
|
/// 点击BottomNavigationBar
|
||||||
void onTapNavigationBar(int index) async {
|
void onTapNavigationBar(int index) {
|
||||||
pageController.jumpToPage(index);
|
pageController.jumpToPage(index);
|
||||||
await ApplovinManage().showAdIfReady(ApplovinManage().adUnitId1);
|
ApplovinManage().showAdIfReady(ApplovinManage().adUnitId1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// 点击设置
|
/// 点击设置
|
||||||
|
|||||||
@ -5,8 +5,10 @@ import 'package:hello_wallpaper/common/components/keep_alive_wrapper.dart';
|
|||||||
import 'package:hello_wallpaper/common/components/navigation_bar/title_bar_widget.dart';
|
import 'package:hello_wallpaper/common/components/navigation_bar/title_bar_widget.dart';
|
||||||
import 'package:hello_wallpaper/modules/home/home_controller.dart';
|
import 'package:hello_wallpaper/modules/home/home_controller.dart';
|
||||||
|
|
||||||
class HomeView extends GetView<HomeController> {
|
class HomeView extends StatelessWidget {
|
||||||
const HomeView({super.key});
|
HomeView({super.key});
|
||||||
|
|
||||||
|
final controller = Get.find<HomeController>();
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
|||||||
@ -23,13 +23,13 @@ class SettingsController extends GetxController {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
if (index == 2) {
|
if (index == 2) {
|
||||||
Get.toNamed(AppPages.webPage, arguments: {
|
Get.toNamed(AppPages.privacyPolicy, arguments: {
|
||||||
'title': options[index],
|
'title': options[index],
|
||||||
'url': 'https://nowwallpaperapp.mystrikingly.com/privacy',
|
'url': 'https://nowwallpaperapp.mystrikingly.com/privacy',
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
if (index == 3) {
|
if (index == 3) {
|
||||||
Get.toNamed(AppPages.webPage, arguments: {
|
Get.toNamed(AppPages.termsOfService, arguments: {
|
||||||
'title': options[index],
|
'title': options[index],
|
||||||
'url': 'https://nowwallpaperapp.mystrikingly.com/terms'
|
'url': 'https://nowwallpaperapp.mystrikingly.com/terms'
|
||||||
});
|
});
|
||||||
|
|||||||
@ -5,8 +5,10 @@ import 'package:hello_wallpaper/common/components/navigation_bar/base_appbar.dar
|
|||||||
import 'package:hello_wallpaper/generated/assets.dart';
|
import 'package:hello_wallpaper/generated/assets.dart';
|
||||||
import 'package:hello_wallpaper/modules/settings/settings_controller.dart';
|
import 'package:hello_wallpaper/modules/settings/settings_controller.dart';
|
||||||
|
|
||||||
class SettingsView extends GetView<SettingsController> {
|
class SettingsView extends StatelessWidget{
|
||||||
const SettingsView({super.key});
|
SettingsView({super.key});
|
||||||
|
|
||||||
|
final controller = Get.find<SettingsController>();
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
|||||||
@ -6,7 +6,7 @@ import 'package:hello_wallpaper/routes/app_pages.dart';
|
|||||||
|
|
||||||
class SplashScreenController extends GetxController {
|
class SplashScreenController extends GetxController {
|
||||||
Timer? _timer;
|
Timer? _timer;
|
||||||
int _timeCount = 1;
|
int _timeCount = 15;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void onInit() {
|
void onInit() {
|
||||||
|
|||||||
@ -5,8 +5,10 @@ import 'package:hello_wallpaper/generated/assets.dart';
|
|||||||
import 'package:hello_wallpaper/modules/splash_screen/splash_screen_controller.dart';
|
import 'package:hello_wallpaper/modules/splash_screen/splash_screen_controller.dart';
|
||||||
import 'package:hello_wallpaper/res/values/strings.dart';
|
import 'package:hello_wallpaper/res/values/strings.dart';
|
||||||
|
|
||||||
class SplashScreenView extends GetView<SplashScreenController> {
|
class SplashScreenView extends StatelessWidget {
|
||||||
const SplashScreenView({super.key});
|
SplashScreenView({super.key});
|
||||||
|
|
||||||
|
final controller = Get.find<SplashScreenController>();
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
|||||||
@ -23,6 +23,7 @@ class WallpaperDetController extends GetxController {
|
|||||||
late final List<GlobalKey> globalKey;
|
late final List<GlobalKey> globalKey;
|
||||||
late final List<WallpaperData> wallpaperList;
|
late final List<WallpaperData> wallpaperList;
|
||||||
late final PageController pageController;
|
late final PageController pageController;
|
||||||
|
late final String heroTag;
|
||||||
var blurs = <bool>[].obs;
|
var blurs = <bool>[].obs;
|
||||||
var position = 0;
|
var position = 0;
|
||||||
var filePath = '';
|
var filePath = '';
|
||||||
@ -30,8 +31,10 @@ class WallpaperDetController extends GetxController {
|
|||||||
@override
|
@override
|
||||||
void onInit() {
|
void onInit() {
|
||||||
super.onInit();
|
super.onInit();
|
||||||
position = Get.arguments['position'] ?? 0;
|
Map<String, dynamic> arguments = Get.arguments ?? {};
|
||||||
wallpaperList = Get.arguments['wallpaperList'] ?? <WallpaperData>[];
|
position = arguments['position'] ?? 0;
|
||||||
|
wallpaperList = arguments['wallpaperList'] ?? <WallpaperData>[];
|
||||||
|
heroTag = arguments['heroTag'] ?? '';
|
||||||
globalKey = List.generate(wallpaperList.length, (index) => GlobalKey());
|
globalKey = List.generate(wallpaperList.length, (index) => GlobalKey());
|
||||||
blurs.value = List.generate(wallpaperList.length, (index) => false);
|
blurs.value = List.generate(wallpaperList.length, (index) => false);
|
||||||
pageController = PageController(initialPage: position);
|
pageController = PageController(initialPage: position);
|
||||||
@ -162,8 +165,8 @@ class WallpaperDetController extends GetxController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// 显示广告
|
/// 显示广告
|
||||||
Future<void> showAd() async {
|
void showAd() {
|
||||||
await ApplovinManage().showAdIfReady(ApplovinManage().adUnitId3);
|
|
||||||
Get.back();
|
Get.back();
|
||||||
|
ApplovinManage().showAdIfReady(ApplovinManage().adUnitId3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -13,8 +13,10 @@ import 'package:hello_wallpaper/modules/wallpaper_det/wallpaper_det_controller.d
|
|||||||
import 'package:photo_view/photo_view.dart';
|
import 'package:photo_view/photo_view.dart';
|
||||||
import 'package:photo_view/photo_view_gallery.dart';
|
import 'package:photo_view/photo_view_gallery.dart';
|
||||||
|
|
||||||
class WallpaperDetView extends GetView<WallpaperDetController> {
|
class WallpaperDetView extends StatelessWidget {
|
||||||
const WallpaperDetView({super.key});
|
WallpaperDetView({super.key});
|
||||||
|
|
||||||
|
final controller = Get.find<WallpaperDetController>();
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
@ -85,7 +87,7 @@ class WallpaperDetView extends GetView<WallpaperDetController> {
|
|||||||
maxScale: PhotoViewComputedScale.covered * 3,
|
maxScale: PhotoViewComputedScale.covered * 3,
|
||||||
loadingBuilder: (context, event) => loadingView(),
|
loadingBuilder: (context, event) => loadingView(),
|
||||||
errorBuilder: (BuildContext context, Object error, StackTrace? stackTrace) => errorView,
|
errorBuilder: (BuildContext context, Object error, StackTrace? stackTrace) => errorView,
|
||||||
heroAttributes: PhotoViewHeroAttributes(tag: '${controller.position}-${controller.wallpaperList[index].original}'),
|
heroAttributes: PhotoViewHeroAttributes(tag: controller.heroTag),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}),
|
}),
|
||||||
|
|||||||
@ -5,8 +5,10 @@ import 'package:hello_wallpaper/common/components/view_state_widget.dart';
|
|||||||
import 'package:webview_flutter/webview_flutter.dart';
|
import 'package:webview_flutter/webview_flutter.dart';
|
||||||
import 'web_page_controller.dart';
|
import 'web_page_controller.dart';
|
||||||
|
|
||||||
class WebPageView extends GetView<WebPageController> {
|
class WebPageView extends StatelessWidget {
|
||||||
const WebPageView({super.key});
|
WebPageView({super.key});
|
||||||
|
|
||||||
|
final controller = Get.find<WebPageController>();
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
|||||||
@ -39,44 +39,52 @@ class AppPages {
|
|||||||
/// 关于
|
/// 关于
|
||||||
static const about = '/about';
|
static const about = '/about';
|
||||||
|
|
||||||
/// WebView页面
|
/// 隐私政策
|
||||||
static const webPage = '/web_page';
|
static const privacyPolicy = '/privacy_policy';
|
||||||
|
|
||||||
|
/// 服务条款
|
||||||
|
static const termsOfService = '/terms_of_service';
|
||||||
|
|
||||||
static final routes = [
|
static final routes = [
|
||||||
GetPage(
|
GetPage(
|
||||||
name: splashScreen,
|
name: splashScreen,
|
||||||
page: () => const SplashScreenView(),
|
page: () => SplashScreenView(),
|
||||||
binding: SplashScreenBinding(),
|
binding: SplashScreenBinding(),
|
||||||
),
|
),
|
||||||
GetPage(
|
GetPage(
|
||||||
name: home,
|
name: home,
|
||||||
page: () => const HomeView(),
|
page: () => HomeView(),
|
||||||
binding: HomeBinding(),
|
binding: HomeBinding(),
|
||||||
),
|
),
|
||||||
GetPage(
|
GetPage(
|
||||||
name: wallpaperDet,
|
name: wallpaperDet,
|
||||||
page: () => const WallpaperDetView(),
|
page: () => WallpaperDetView(),
|
||||||
binding: WallpaperDetBinding(),
|
binding: WallpaperDetBinding(),
|
||||||
),
|
),
|
||||||
GetPage(
|
GetPage(
|
||||||
name: clsDet,
|
name: clsDet,
|
||||||
page: () => const ClsDetView(),
|
page: () => ClsDetView(),
|
||||||
binding: ClsDetBinding(),
|
binding: ClsDetBinding(),
|
||||||
),
|
),
|
||||||
GetPage(
|
GetPage(
|
||||||
name: settings,
|
name: settings,
|
||||||
page: () => const SettingsView(),
|
page: () => SettingsView(),
|
||||||
binding: SettingsBinding(),
|
binding: SettingsBinding(),
|
||||||
),
|
),
|
||||||
GetPage(
|
GetPage(
|
||||||
name: webPage,
|
name: about,
|
||||||
page: () => const WebPageView(),
|
page: () => AboutView(),
|
||||||
|
binding: AboutBinding(),
|
||||||
|
),
|
||||||
|
GetPage(
|
||||||
|
name: privacyPolicy,
|
||||||
|
page: () => WebPageView(),
|
||||||
binding: WebPageBinding(),
|
binding: WebPageBinding(),
|
||||||
),
|
),
|
||||||
GetPage(
|
GetPage(
|
||||||
name: about,
|
name: termsOfService,
|
||||||
page: () => const AboutView(),
|
page: () => WebPageView(),
|
||||||
binding: AboutBinding(),
|
binding: WebPageBinding(),
|
||||||
),
|
),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@ -16,7 +16,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
|
|||||||
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
|
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
|
||||||
# In Windows, build-name is used as the major, minor, and patch parts
|
# In Windows, build-name is used as the major, minor, and patch parts
|
||||||
# of the product and file versions while build-number is used as the build suffix.
|
# of the product and file versions while build-number is used as the build suffix.
|
||||||
version: 1.0.0+1
|
version: 1.0.1+2
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: '>=3.3.4 <4.0.0'
|
sdk: '>=3.3.4 <4.0.0'
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user