fix: 屏幕帧率 issues #99 #115

This commit is contained in:
guozhigq
2023-09-19 23:39:00 +08:00
parent afcc5a9a02
commit 7458c33173
3 changed files with 39 additions and 3 deletions

View File

@ -2,6 +2,8 @@ import 'package:flutter/material.dart';
import 'package:flutter/scheduler.dart';
import 'package:flutter/services.dart';
import 'package:flutter_displaymode/flutter_displaymode.dart';
import 'package:hive/hive.dart';
import 'package:pilipala/utils/storage.dart';
class SetDiaplayMode extends StatefulWidget {
const SetDiaplayMode({super.key});
@ -14,6 +16,7 @@ class _SetDiaplayModeState extends State<SetDiaplayMode> {
List<DisplayMode> modes = <DisplayMode>[];
DisplayMode? active;
DisplayMode? preferred;
Box setting = GStrorage.setting;
final ValueNotifier<int> page = ValueNotifier<int>(0);
late final PageController controller = PageController()
@ -29,24 +32,36 @@ class _SetDiaplayModeState extends State<SetDiaplayMode> {
});
}
// 获取所有的mode
Future<void> fetchAll() async {
preferred = await FlutterDisplayMode.preferred;
active = await FlutterDisplayMode.active;
// GStorage().setDisplayModeType(preferred!);
await setting.put(SettingBoxKey.displayMode, preferred.toString());
setState(() {});
}
// 初始化mode/手动设置
Future<void> init() async {
try {
modes = await FlutterDisplayMode.supported;
} on PlatformException catch (e) {
print(e);
}
// var res = await GStorage().getDisplayModeType();
// preferred = modes.toList().firstWhere((el) => el == res);
var res = await getDisplayModeType(modes);
preferred = modes.toList().firstWhere((el) => el == res);
FlutterDisplayMode.setPreferredMode(preferred!);
}
Future<DisplayMode> getDisplayModeType(modes) async {
var value = setting.get(SettingBoxKey.displayMode);
DisplayMode f = DisplayMode.auto;
if (value != null) {
f = modes.firstWhere((e) => e.toString() == value);
}
return f;
}
@override
Widget build(BuildContext context) {
return Scaffold(