小编zac*_*ack的帖子

如何从 Flutter 中的资产读取 .txt 文件?

.txt在 Flutter 项目的文件夹资产中有一个文件,当应用程序在设备上打开时,SQFlite会创建一个数据库,并且应该从该文件行读取以将它们插入到数据库中。我需要阅读.txt文件的每一行并将它们添加到List<String>这样的:

List<String> _list = await new File('$dir/assets/file.txt').readAsLines();
Run Code Online (Sandbox Code Playgroud)

我尝试使用rootBundle但我无法将结果转换为 aFile并尝试像这样直接打开文件:

String dir = (await getApplicationDocumentsDirectory()).path;
Run Code Online (Sandbox Code Playgroud)

我总是找不到文件并收到错误消息。

var byte = await rootBundle.load('assets/bot.txt'); // Can't convert it to file
String dir = (await getApplicationDocumentsDirectory()).path;
List<String> _list = await new File('$dir/assets/file.txt').readAsLines(); // Error

error FileSystemException: Cannot open file, path = '/data/user/0/com.example.animationexp/app_flutter/assets/file.txt' (OS Error: No such file or directory, errno = 2) during open, closing...
Run Code Online (Sandbox Code Playgroud)

有没有办法让我打开和阅读这个文件?

android dart flutter

7
推荐指数
2
解决办法
6199
查看次数

如何向 Flutter 插件添加国际化

我做了一个 Flutter 插件,我需要添加国际化。我已经按照本教程进行操作,就像我通常对 Flutter 应用程序所做的那样:Internationalization in Flutter 1.22+

但是对于 Flutter 插件,没有 MaterialApp,所以我无法添加这个:

MaterialApp(
   localizationsDelegates: Translations.localizationsDelegates,
   supportedLocales: Translations.supportedLocales
)
Run Code Online (Sandbox Code Playgroud)

那么,有没有办法将国际化添加到我的 Flutter 插件中,以便我可以在我的插件中使用它?

Translations.of(context).title;
Run Code Online (Sandbox Code Playgroud)

dart flutter flutter-plugin flutter-intl

4
推荐指数
1
解决办法
1078
查看次数

Flutter 中根据不同屏幕尺寸有效缩放此 UI 的最佳实践

我正在 flutter 中做一个 UI,现在它在我的模拟器上看起来很棒,但我担心如果屏幕尺寸不同它会崩溃。防止这种情况的最佳实践是什么,尤其是使用 gridview。

这是我正在尝试做的用户界面(目前只有左侧部分):

用户界面

我现在拥有的代码正在运行。每个项目都在一个Container中,其中 2 个是Gridview

          Expanded(
            child: Container(
              child: Column(
                crossAxisAlignment: CrossAxisAlignment.start,
                children: <Widget>[
                  SizedBox(height: 100),
                  Container( // Top text
                    margin: const EdgeInsets.only(left: 20.0),
                    child: Column(
                      crossAxisAlignment: CrossAxisAlignment.start,
                      children: <Widget>[
                        Text("Hey,",
                            style: TextStyle(
                                fontWeight: FontWeight.bold, fontSize: 25)),
                        Text("what's up ?", style: TextStyle(fontSize: 25)),
                        SizedBox(height: 10),
                      ],
                    ),
                  ),
                  Container( // First gridview
                      height: MediaQuery.of(context).size.height/2,
                      child: GridView.count(
                          crossAxisCount: 3,
                          scrollDirection: Axis.horizontal,
                          crossAxisSpacing: 10,
                          mainAxisSpacing: 10,
                          padding: const EdgeInsets.all(10),
                          children: List.generate(9, (index) {
                            return …
Run Code Online (Sandbox Code Playgroud)

dart flutter flutter-layout

3
推荐指数
1
解决办法
6149
查看次数