Flutter是否支持平台特定的文件?

时间:2019-08-27 07:01:35

标签: flutter platform

Flutter是否支持平台特定的文件? 我们是否可以创建特定于平台的文件–将 myButton.dart 称为 myButton.iOS.dart myButton.android.dart ,以便当myButton文件导入,它将根据平台选择适当的文件并执行。

1 个答案:

答案 0 :(得分:0)

没有像您描述的那样内置的解决方案,但是您可以编写一个瘦包装器窗口小部件,该控件根据平台选择正确的窗口小部件:

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),
);