设想:
在我的 120 fps 设备上发布版本后,有一个包含 20 张卡的硬编码列表的应用程序仍然感觉像 60 fps 如何修复它,而 native android 对应物具有 120 fps 的平滑渲染。
已尝试上述场景将基于滚动的小部件包括基于构建器的小部件和普通小部件。
它不是以 120 fps 渲染的 flutter 缺陷吗?
最佳答案
在默认情况下显示 120hz 的 Android 手机上选择了错误的显示模式(例如 60hz 而不是 120hz)。这可以很容易地纠正,然后一加 8T 或 Galaxy S20+ 等手机的性能非常好。
flutter_displaymode
library : flutter_displaymode: ^0.3.0-nullsafety.0
class _YourAppState extends State<YourApp> {
@override
void initState() {
setOptimalDisplayMode();
super.initState();
}
Future<void> setOptimalDisplayMode() async {
final List<DisplayMode> supported = await FlutterDisplayMode.supported;
final DisplayMode active = await FlutterDisplayMode.active;
final List<DisplayMode> sameResolution = supported.where(
(DisplayMode m) => m.width == active.width
&& m.height == active.height).toList()..sort(
(DisplayMode a, DisplayMode b) =>
b.refreshRate.compareTo(a.refreshRate));
final DisplayMode mostOptimalMode = sameResolution.isNotEmpty
? sameResolution.first
: active;
/// This setting is per session.
/// Please ensure this was placed with `initState` of your root widget.
await FlutterDisplayMode.setPreferredMode(mostOptimalMode);
}
}
请注意,目前没有 120hz iPhone,因此无需执行它们。
关于android - flutter 120fps问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63631522/