增加全局置灰功能

This commit is contained in:
胡天 2023-07-23 17:47:15 +08:00
parent 998f61dea7
commit a7d4f1d256
5 changed files with 52 additions and 35 deletions

View File

@ -8,10 +8,13 @@ class ConfigService extends GetxService {
static ConfigService get to => Get.find(); static ConfigService get to => Get.find();
bool isFirstOpen = false; bool isFirstOpen = false;
RxBool isGrayFilter = false.obs;
PackageInfo? _platform; PackageInfo? _platform;
String get version => _platform?.version ?? "-"; String get version => _platform?.version ?? "-";
bool get isRelease => bool.fromEnvironment("dart.vm.product"); bool get isRelease => bool.fromEnvironment("dart.vm.product");
Locale locale = Locale("en", "US"); Locale locale = Locale("en", "US");
List<Locale> languages = [ List<Locale> languages = [
@ -25,6 +28,10 @@ class ConfigService extends GetxService {
isFirstOpen = StorageService.to.getBool(StorageDeviceFirstOpenKey); isFirstOpen = StorageService.to.getBool(StorageDeviceFirstOpenKey);
} }
void changeGrayTheme() {
isGrayFilter.value = !isGrayFilter.value;
}
Future<void> getPlatform() async { Future<void> getPlatform() async {
_platform = await PackageInfo.fromPlatform(); _platform = await PackageInfo.fromPlatform();
} }

View File

@ -10,6 +10,7 @@ import 'package:news_getx/utils/loading.dart';
class Global { class Global {
/// ///
static Future init() async { static Future init() async {
//
WidgetsFlutterBinding.ensureInitialized(); WidgetsFlutterBinding.ensureInitialized();
await SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]); await SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);

View File

@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:flutter_easyloading/flutter_easyloading.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:news_getx/data/services/config.dart';
import 'package:news_getx/global.dart'; import 'package:news_getx/global.dart';
import 'package:news_getx/routes/app_pages.dart'; import 'package:news_getx/routes/app_pages.dart';
import 'package:news_getx/theme/app_theme.dart'; import 'package:news_getx/theme/app_theme.dart';
@ -23,6 +24,15 @@ class MyApp extends StatelessWidget {
// true column就不会随着软键盘而变化 // true column就不会随着软键盘而变化
// useInheritedMediaQuery: true, // useInheritedMediaQuery: true,
builder: (BuildContext context, Widget? child) { 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( return RefreshConfiguration(
headerBuilder: () => ClassicHeader(), headerBuilder: () => ClassicHeader(),
footerBuilder: () => ClassicFooter(), footerBuilder: () => ClassicFooter(),
@ -30,14 +40,12 @@ class MyApp extends StatelessWidget {
headerTriggerDistance: 80, headerTriggerDistance: 80,
maxOverScrollExtent: 100, maxOverScrollExtent: 100,
footerTriggerDistance: 150, footerTriggerDistance: 150,
child: GetMaterialApp( child: Obx(() {
title: 'News', return ConfigService.to.isGrayFilter.isTrue ? ColorFiltered(
debugShowCheckedModeBanner: false, colorFilter: ColorFilter.mode(Colors.white, BlendMode.color),
theme: AppTheme.light, child: app,
initialRoute: AppRoutes.Initial, ) : app;
getPages: AppPages.pages, }),
builder: EasyLoading.init(),
),
); );
}, },
); );

View File

@ -47,6 +47,7 @@ class _NewsPageListState extends State<NewsPageList>
], ],
), ),
); );
}); },
);
} }
} }

View File

@ -1,6 +1,7 @@
import 'package:flutter/material.dart'; 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:news_getx/data/services/config.dart';
import 'package:news_getx/modules/main/main_controller.dart'; import 'package:news_getx/modules/main/main_controller.dart';
import 'package:news_getx/modules/widgets/image.dart'; import 'package:news_getx/modules/widgets/image.dart';
import 'package:news_getx/theme/app_colors.dart'; import 'package:news_getx/theme/app_colors.dart';
@ -9,7 +10,6 @@ import 'package:news_getx/utils/date.dart';
class NewsRecommendWidget extends GetView<MainController> { class NewsRecommendWidget extends GetView<MainController> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
print('推荐信息:${controller.state.newsRecommend?.thumbnail}');
return Obx( return Obx(
() => controller.state.newsRecommend == null () => controller.state.newsRecommend == null
? Container() ? Container()