场景:在我的 120 fps 设备上发布版本后,在 flutter 中有一个包含 20 张卡的硬编码列表的应用程序,它仍然感觉像 60 fps 如何修复它,而本机 Android 对应物在 120 fps 下具有平滑渲染。
尝试过上述场景将基于滚动的小部件(基于构建器的小部件和普通小部件)。
无法以 120 fps 渲染是 Flutter 的一个缺陷吗?
在具有 120hz 显示的 Android 手机上,默认情况下会选择错误的显示模式(例如 60hz 而不是 120hz)。这个问题很容易纠正,那么在 Oneplus 8T 或 Galaxy S20+ 等手机上的性能就非常好。
flutter_displaymode: ^0.3.0-nullsafety.0
Run Code Online (Sandbox Code Playgroud)
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);
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,目前还没有 120hz iPhone,因此无需执行它们。
小智 -13
请尝试这个,您可以使用媒体查询来调整小部件的大小。
Run Code Online (Sandbox Code Playgroud)MediaQuery.of(context).size
| 归档时间: |
|
| 查看次数: |
6666 次 |
| 最近记录: |