强制 Flutter Android 应用程序的行为就像在 iOS 设备上一样

Dar*_*rio 3 android ios dart flutter

有没有办法强制 Flutter Android 应用程序的行为就像在 iOS 设备上一样?

我指的不是库比蒂诺套餐。

这就是我所说的 Android/iOS 风格

iOS 风格:

IOS

安卓风格:

安卓风格

Jus*_*ess 11

您可以将应用程序ThemeData中的平台参数设置为TargetPlatform.iOS。然后应用程序的行为就像在 iOS 设备上运行一样,包括显示 iOS 文本控件等。至少对于测试非常有用!

这是一个完整的应用程序,即使在 Android 设备上运行也将使用 iOS 样式:

import 'package:flutter/material.dart';

void main() {
  runApp(
    MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
        // The line below forces the theme to iOS.
        platform: TargetPlatform.iOS,
      ),
      home: Scaffold(
        body: Center(
          child: TextField(),
        ),
      ),
    ),
  );
}
Run Code Online (Sandbox Code Playgroud)

编辑

如果您还想伪造defaultTargetPlatform,可以通过设置debugDefaultTargetPlatform来实现。包括这一点,我们还有:

import 'package:flutter/material.dart';
import 'package:flutter/foundation.dart';


void main() {
  // This line will fake defaultTargetPlatform to iOS.
  debugDefaultTargetPlatform = TargetPlatform.iOS;

  runApp(
    MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
        // The line below forces the theme to iOS.
        platform: TargetPlatform.iOS,
      ),
      home: Scaffold(
        body: Center(
          child: TextField(),
        ),
      ),
    ),
  );
}
Run Code Online (Sandbox Code Playgroud)


Che*_*ddy 5

更新

这对于最新的 Flutter 版本不再有效

以前版本的解决方案

是的,如果您想要的话,在开发阶段是可能的。

如果应用程序是从 Intellij/Android studio 启动的,请Flutter Performance从 Intellij/Android Studio 打开选项卡,您可以在其中找到该选项Platform,并且可以在 iOS 和 Android 之间切换。

如果您从命令行启动应用程序并使用 flutter devtools,在 Devtools Web Interface 中,转到选项卡Flutter Inspector,您可以在其中找到该选项Platform,并且可以在 iOS 和 Android 之间切换。

  • @TonyBrand 似乎选择目标平台的按钮已从 Android Studio 中删除。但应该还是有可能在房产中设置平台的。请参阅贾斯汀·麦坎德利斯的回答。 (3认同)