大西冰城的博客

Flutter for Linux 桌面开发笔记

Word count: 638Reading time: 2 min
2020/10/16
loading

Flutter是一当前谷歌大力推行的夸平台App开发框架,现已支持Linux!

开启Linux的支持

根据我排雷的经验,开发Flutter最好还是在ubuntu 18.4这些新版本里安装,作者16.04,好多软件包太老,需要拖源代码编译新的,老烦了
打开终端,运行(这里已经装好了Flutter,不会装看这里)
flutter config --enable-linux-desktop
这样就开启了Linux的支持,最好再运行一下
flutter doctor

linux还要安装以下几个包:

  • cmake (3.10+)
  • libblkid-dev
  • ninja-build
  • libgtk-3-dev

创建flutter项目

打开你要创建的项目路径,运行(myapp是项目名,自己定)
flutter create myapp

命令行显示如下,一个Demo就创建好了

根据提示cd myapp然后flutter run运行这个Demo

到这一步,Flutter for Linux桌面开发的一个Demo就完成了

中文字体缺失问题

  • 可能已经有老铁注意到了,在开发的过程中,如果用中文,在flutter那会乱码,Issus也被问爆了,得到的回答却是:

    Please read the Feedback section of the README. This issue is not related to the code in this repository.

呵呵,好一个甩锅,然后我以为是编译脚本问题,在脚本那改半天,最后发现,只是缺失中文字体库缺失问题,还真不是官方问题啊……..

所以,我们只需要在项目跟目录创建一个fonts文件夹

然后,找一些你喜欢的中文字体,复制到fonts文件夹里(.TTC或者.ttf格式)作者这里从windows下复制了微软雅黑,字体,仅仅演示哈,注意版权问题

复制好后,打开flutter的配置文件pubspec.yaml,里面有几行被注释的代码

1
2
3
4
5
6
7
8
9
10
11
12
13
# example:
# fonts:
# - family: Schyler
# fonts:
# - asset: fonts/Schyler-Regular.ttf
# - asset: fonts/Schyler-Italic.ttf
# style: italic
# - family: Trajan Pro
# fonts:
# - asset: fonts/TrajanPro.ttf
# - asset: fonts/TrajanPro_Bold.ttf
# weight: 700
#

这里是添加自定字体的配置,然后作者在这里改成了这个样

1
2
3
4
5
6
7
fonts:
- family: YaHeiUI #这里命名自己取,待会用到
fonts:
- asset: fonts/MSYH.TTC #一般一个字体都有好几个样式的文件,同一个字体的都这样加上
- asset: fonts/MSYHBD.TTC
- asset: fonts/MSYHL.TTC
weight: 700

这样,就添加了自己的字体库了,接着,在代码的 class MyApp extends StatelessWidget加上 `fontFamily: ‘YaHeiUI’使用字体

1
2
3
4
5
6
7
8
9
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
fontFamily: 'YaHeiUI', //刚刚上面family怎么命名的,这里写什么
.....

然后,中文就正常啦

CATALOG
  1. 1. 开启Linux的支持
  2. 2. 创建flutter项目
  3. 3. 中文字体缺失问题