diff --git a/lib/data/services/config.dart b/lib/data/services/config.dart index a7b47d9..2d057e0 100644 --- a/lib/data/services/config.dart +++ b/lib/data/services/config.dart @@ -8,10 +8,13 @@ class ConfigService extends GetxService { static ConfigService get to => Get.find(); bool isFirstOpen = false; + RxBool isGrayFilter = false.obs; PackageInfo? _platform; String get version => _platform?.version ?? "-"; + bool get isRelease => bool.fromEnvironment("dart.vm.product"); + Locale locale = Locale("en", "US"); List languages = [ @@ -25,6 +28,10 @@ class ConfigService extends GetxService { isFirstOpen = StorageService.to.getBool(StorageDeviceFirstOpenKey); } + void changeGrayTheme() { + isGrayFilter.value = !isGrayFilter.value; + } + Future getPlatform() async { _platform = await PackageInfo.fromPlatform(); } @@ -35,8 +42,8 @@ class ConfigService extends GetxService { } void onInitLocale() { - String langCode = StorageService.to.getString(StorageLanguageCode); - if (langCode .isEmpty) return; + String langCode = StorageService.to.getString(StorageLanguageCode); + if (langCode.isEmpty) return; int index = languages.indexWhere((element) { return element.languageCode == langCode; @@ -51,4 +58,4 @@ class ConfigService extends GetxService { Get.updateLocale(value); StorageService.to.setString(StorageLanguageCode, value.languageCode); } -} \ No newline at end of file +} diff --git a/lib/global.dart b/lib/global.dart index 628cb38..de103da 100644 --- a/lib/global.dart +++ b/lib/global.dart @@ -10,6 +10,7 @@ import 'package:news_getx/utils/loading.dart'; class Global { /// 初始化 static Future init() async { + // 运行初始 WidgetsFlutterBinding.ensureInitialized(); await SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]); diff --git a/lib/main.dart b/lib/main.dart index 583c277..405640e 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; +import 'package:news_getx/data/services/config.dart'; import 'package:news_getx/global.dart'; import 'package:news_getx/routes/app_pages.dart'; import 'package:news_getx/theme/app_theme.dart'; @@ -23,6 +24,15 @@ class MyApp extends StatelessWidget { // 如果不把这歌参数设为true 那么column就不会随着软键盘而变化 // useInheritedMediaQuery: true, builder: (BuildContext context, Widget? child) { + var app = GetMaterialApp( + title: 'News', + debugShowCheckedModeBanner: false, + theme: AppTheme.light, + initialRoute: AppRoutes.Initial, + getPages: AppPages.pages, + builder: EasyLoading.init(), + ); + return RefreshConfiguration( headerBuilder: () => ClassicHeader(), footerBuilder: () => ClassicFooter(), @@ -30,14 +40,12 @@ class MyApp extends StatelessWidget { headerTriggerDistance: 80, maxOverScrollExtent: 100, footerTriggerDistance: 150, - child: GetMaterialApp( - title: 'News', - debugShowCheckedModeBanner: false, - theme: AppTheme.light, - initialRoute: AppRoutes.Initial, - getPages: AppPages.pages, - builder: EasyLoading.init(), - ), + child: Obx(() { + return ConfigService.to.isGrayFilter.isTrue ? ColorFiltered( + colorFilter: ColorFilter.mode(Colors.white, BlendMode.color), + child: app, + ) : app; + }), ); }, ); diff --git a/lib/modules/category/widgets/news_page_list.dart b/lib/modules/category/widgets/news_page_list.dart index 4099e91..69e3611 100644 --- a/lib/modules/category/widgets/news_page_list.dart +++ b/lib/modules/category/widgets/news_page_list.dart @@ -23,30 +23,31 @@ class _NewsPageListState extends State Widget build(BuildContext context) { super.build(context); return GetX( - init: controller, - builder: (controller) { - return SmartRefresher( - controller: controller.refreshController, - enablePullUp: true, - onRefresh: controller.onRefresh, - onLoading: controller.onLoading, - child: CustomScrollView( - slivers: [ - SliverPadding( - padding: EdgeInsets.symmetric(vertical: 0.w, horizontal: 0.h), - sliver: SliverList( - delegate: SliverChildBuilderDelegate( - (BuildContext context, int index) { - var item = controller.state.newsList[index]; - return NewsListItem(newsItem: item); - }, - childCount: controller.state.newsList.length, - ), + init: controller, + builder: (controller) { + return SmartRefresher( + controller: controller.refreshController, + enablePullUp: true, + onRefresh: controller.onRefresh, + onLoading: controller.onLoading, + child: CustomScrollView( + slivers: [ + SliverPadding( + padding: EdgeInsets.symmetric(vertical: 0.w, horizontal: 0.h), + sliver: SliverList( + delegate: SliverChildBuilderDelegate( + (BuildContext context, int index) { + var item = controller.state.newsList[index]; + return NewsListItem(newsItem: item); + }, + childCount: controller.state.newsList.length, ), ), - ], - ), - ); - }); + ), + ], + ), + ); + }, + ); } } diff --git a/lib/modules/main/widgets/recommend.dart b/lib/modules/main/widgets/recommend.dart index 29ef1e7..4f266b3 100644 --- a/lib/modules/main/widgets/recommend.dart +++ b/lib/modules/main/widgets/recommend.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; +import 'package:news_getx/data/services/config.dart'; import 'package:news_getx/modules/main/main_controller.dart'; import 'package:news_getx/modules/widgets/image.dart'; import 'package:news_getx/theme/app_colors.dart'; @@ -9,7 +10,6 @@ import 'package:news_getx/utils/date.dart'; class NewsRecommendWidget extends GetView { @override Widget build(BuildContext context) { - print('推荐信息:${controller.state.newsRecommend?.thumbnail}'); return Obx( () => controller.state.newsRecommend == null ? Container()