flutter - Flutter 是否支持特定于平台的文件?
问题描述
Flutter 是否支持特定于平台的文件? 我们可以创建特定于平台的文件吗?例如myButton.dart为myButton.iOS.dart和myButton.android.dart以便在导入 myButton 文件时,它会根据平台选择适当的文件并执行它。
解决方案
没有像您描述的那样的内置解决方案,但是您可以只编写一个瘦包装小部件,它会根据平台选择正确的小部件:
import 'dart:io' show Platform;
import 'package:flutter/widgets.dart';
class MyButton extends StatelessWidget {
@override
Widget build(BuildContext context) {
if (Platform.isIOS) {
return MyIOSButton();
} else if (Platform.isAndroid) {
return MyAndroidButton();
} else
return GenericButton();
}
}
}
或者如果你想要一些预制的小部件,你可以查看flutter_platform_widgets包。
其中已经提供了一个通用小部件,以制作平台感知小部件:
return PlatformWidget(
ios: (_) => Icon(CupertinoIcons.flag),
android: (_) => Icon(Icons.flag),
);
推荐阅读
- android - 更改 androidx.preference.EditTextPreference 中的 Title 和 EditText 颜色
- ajax - Thymeleaf:点击表格行提交表单
- flutter - Flutter:如何在 DatePicker 中仅启用特定日期的日期
- javascript - 如何从浏览器使用 Unleash Feature 服务器(React 项目)
- c++ - 关于在 main 中列出和声明函数的问题
- python - 如何按该行的数量从树视图中删除一行?
- postgresql - 将重复数据存储为 Postgres 中的列?
- c++ - 如何:将 C++14 模板函数扩展为可变参数模板、参数
- python - 有没有办法在 tkinter 中使用多手柄滑块?
- firebase - 检索文档列表,仅限于数组中的 ID——跟进