增加全局置灰功能
This commit is contained in:
parent
998f61dea7
commit
a7d4f1d256
|
@ -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<Locale> languages = [
|
||||
|
@ -25,6 +28,10 @@ class ConfigService extends GetxService {
|
|||
isFirstOpen = StorageService.to.getBool(StorageDeviceFirstOpenKey);
|
||||
}
|
||||
|
||||
void changeGrayTheme() {
|
||||
isGrayFilter.value = !isGrayFilter.value;
|
||||
}
|
||||
|
||||
Future<void> 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,6 +10,7 @@ import 'package:news_getx/utils/loading.dart';
|
|||
class Global {
|
||||
/// 初始化
|
||||
static Future init() async {
|
||||
// 运行初始
|
||||
WidgetsFlutterBinding.ensureInitialized();
|
||||
await SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
|
||||
|
||||
|
|
|
@ -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;
|
||||
}),
|
||||
);
|
||||
},
|
||||
);
|
||||
|
|
|
@ -23,30 +23,31 @@ class _NewsPageListState extends State<NewsPageList>
|
|||
Widget build(BuildContext context) {
|
||||
super.build(context);
|
||||
return GetX<CategoryController>(
|
||||
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,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
});
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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<MainController> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
print('推荐信息:${controller.state.newsRecommend?.thumbnail}');
|
||||
return Obx(
|
||||
() => controller.state.newsRecommend == null
|
||||
? Container()
|
||||
|
|
Loading…
Reference in New Issue