如何使Flutter使用设备的默认字体?

时间:2018-08-19 00:18:28

标签: android dart flutter

我打开了一个 Java 原生Android 应用和一个 Flutter Android应用在同一设备上并为两个应用程序截图:

Screenshots of the Java (left) and Flutter (right) applications

如您所见,它们用来显示其文本的字体是不同的。
这两个应用程序都是使用Samsung Galaxy S5 Choco Cooky默认主题运行的。

Java本机应用程序会适应并显示自定义的Samsung Galaxy字体,而 Flutter应用程序不会调整字体

如何配置Flutter应用以使用设备的默认字体?

2 个答案:

答案 0 :(得分:2)

PlatformChannels创建一个TextView,然后将此Android TextView访问Flutter应用程序。 并使用它代替Flutter的Text小部件。

查看此Article以获得更多信息。

答案 1 :(得分:0)

在Flutter中,Android上的默认字体是Roboto,而在iOS上的默认字体是.SF UI Pro和.SF UI Text。

  

查看此答案https://stackoverflow.com/a/56339147/1776125

在iOS上可以,但是在android上有许多具有不同默认字体系列的ROM。

为了获取设备默认字体系列,我在Android上编写了一个平台频道,下面是获取设备默认字体系列的代码:

{
  "lang": "en-US",
  "name": "app name",
  "scope": "./",
  "display": "standalone",
  "start_url": "/",
  "short_name": "app name",
  "theme_color": "#227194",
  "description": "This is pwa for app",
  "orientation": "any",
  "background_color": "#227194",
  "related_applications": [],
  "prefer_related_applications": false,
  "icons": [
    {
      "src": "/Assets/Images/icons/icon-128x128.png",
      "sizes": "128x128",
      "type": "image/png"
    },

    {
      "src": "/Assets/Images/icons/icon-152x152.png",
      "sizes": "152x152",
      "type": "image/png"
    },
    {
      "src": "/Assets/Images/icons/icon-192x192.png",
      "sizes": "192x192",
      "type": "image/png"
    },
    {
      "src": "/Assets/Images/icons/icon-384x384.png",
      "sizes": "384x384",
      "type": "image/png"
    },
    {
      "src": "/Assets/Images/icons/icon-512x512.png",
      "sizes": "512x512",
      "type": "image/png"
    },

    {
      "src": "/Assets/Images/icons/icon-144x144.png",
      "sizes": "144x144",
      "type": "image/png"
    },
    {
      "src": "/Assets/Images/icons/icon-72x72.png",
      "sizes": "72x72",
      "type": "image/png"
    },
    {
      "src": "/Assets/Images/icons/icon-96x96.png",
      "sizes": "96x96",
      "type": "image/png"
    }
  ]
}