【问题标题】:Does Flutter support Platform specific files?Flutter 是否支持特定于平台的文件?
【发布时间】:2019-08-27 07:01:35
【问题描述】:

Flutter 是否支持特定于平台的文件? 我们可以创建特定于平台的文件吗?例如 myButton.dart 作为 myButton.iOS.dartmyButton.android.dart 以便当 myButton 文件导入后,根据平台选择合适的文件并执行。

【问题讨论】:

  • 使用平台特定的小部件和类似 Platform.isIOS / Platform.isAndroid 的 if 语句

标签: flutter platform


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 2019-03-14
    • 2021-01-21
    • 1970-01-01
    • 2016-01-05
    • 2019-06-10
    相关资源
    最近更新 更多