编辑:这个问题是关于使用 AssetBundle,而那个问题(颤振中的文件列表)是关于使用目录的。它们因类别不同而不同。另外:我删除了一个部分,这可能类似于上一个问题。
我不明白如何使用 AssetBundle 访问文件...
例如,我在 pubspec.yaml 中的资产
assets:
- assets/images/
- assets/texts/
Run Code Online (Sandbox Code Playgroud)
AssetBundle 有方法:loadString(key, ...) 和 loadStructuredData(key, ...) - 什么是键以及如何使用这些方法?
我需要从文本文件和其他文件加载数据。我知道有一个 rootBundle(或 DefaultAssetBundle.of(context))......但是如何使用它来加载文件?!
谢谢!
我需要显示一个样式文本供阅读和一些操作.用户应该能够选择一段文字并用颜色标记,保存或展开(显示其他信息,例如翻译成另一种语言).
我可以使用RichText小部件显示文本.
1)如何使其可选择以及如何/在何处添加onTextSelected侦听器?有一个类TextSelection但我无法看到它的使用方式/位置.
2)扩展文本的最简单方法是什么?我可以重新加载全文(添加更改)并完全更新小部件,但这将导致滚动到文本的顶部,我认为应该有更好的方法.
我有图像,我想将它们加载到我的应用程序中。my_app/lib/... - 这里是我的源文件 my_app/assets/images/... - 这里是我的图片
我需要获取 assets/images/ 中的文件列表,然后显示其中的一些(根据其他逻辑)我正在尝试这个
final dir = Directory("assets/images/");
print(dir.existsSync()); // <---- it also print: false
var files = dir.listSync().toList();
files.forEach((e) => list.add(MyImageItem(e.path)));
Run Code Online (Sandbox Code Playgroud)
问题是:我收到异常
FileSystemException: Directory listing failed, path = 'assets/images/'
(OS Error: No such file or directory, errno = 2)
Run Code Online (Sandbox Code Playgroud)
我尝试了不同的方法:assets/images/、images/、images 等等 我的 pubspec.yaml
flutter:
assets:
- assets/images/
- assets/
Run Code Online (Sandbox Code Playgroud)
当我直接创建 Image 时一切都很好
new Image(image: AssetImage("assets/images/cat.png"))
Run Code Online (Sandbox Code Playgroud)
我知道之前(一个月前)每个资源都必须直接在 pubspec.yaml 中声明,但现在 assets/images/ 没问题。我可以通过直接路径加载文件。为什么我无法访问目录?如何获取目录中的文件列表以从我的代码中获取它们?
默认情况下,Android Studio在构建Flutter应用程序时使用调试模式。您可以使用命令行构建发行版,请参见如何优化Flutter App的大小?
flutter build apk --release
Run Code Online (Sandbox Code Playgroud)
现在:当我运行应用程序(Shift + F10)时,如何配置Android Studio以执行相同的操作?我找不到此设置...
我需要显示长文本,它将占据多个屏幕/页面。我还必须添加一些功能,因此我想实现自己的文本显示组件。
我发现了两个与此任务相对应的类:
TextPainter
将TextSpan用于文本,
将Paint(canvas,offset)用于绘画
段落
使用“队列”来表示文本,而样式
使用Canvas.drawParagraph(paragraph,offset)进行绘画
它们和使用哪个有什么区别?
如果文本包含100行,而页面上只能放置10行,那么如何在下一页上绘制截断的文本,直到没有剩余?