小编Ale*_*tin的帖子

如何在 dart/flutter 中获取重定向 URL?

我正在构建一个应用程序,显示从 source.unsplash 获取的图像。我的请求网址是:

https://source.unsplash.com/random/`$widthx$height`
Run Code Online (Sandbox Code Playgroud)

然后该服务重定向到一些特定的图像网址,该网址选择适合我的宽度和高度。

我可以使用: 显示图像
Image.network(url above)
但我无法访问代码的其他部分的新重定向网址,这确实是必要的。有办法得到吗?

提前致谢

我正在寻找的东西就像

Http.Response response = await Http.get(url);
print(response.finalRedirectURL);
Run Code Online (Sandbox Code Playgroud)

dart flutter

5
推荐指数
1
解决办法
2万
查看次数

有什么办法可以同步获取文档目录吗?

在显示第一个屏幕之前,我需要加载一个小设置文件。

我目前正在使用 PathProvider 插件,但其中的所有功能都是异步的。

有没有办法同步找到应用程序文档目录,然后在其上使用 dart:io 同步功能?而不是显示秒的无限小数的占位符。

编辑:考虑到前两个答案,可能我的解释真的很糟糕。答案建议我仍然使用async代码。问题是,我需要 before 目录runApp(),但我不希望void main()是 目录async,因为这肯定会破坏任何启动动画。

async据我所知,PathProvider API 是,只是因为它利用MethodChannelasync,但 PathProvider 背后的函数几乎是同步的。

我要问的是 - 在 Android 或 IOS 上有没有办法知道同步代码中的 ApplicationDocumentsDirectory ?也许根本不使用特定于平台的代码?

dart flutter

5
推荐指数
1
解决办法
1126
查看次数

我应该将所有方法参数标记为最终参数并指定类型吗

有效的 dart 指定顶级变量应final在适用时使用: https: //dart-lang.github.io/linter/lints/prefer_final_fields.html

但是,我找不到有关方法参数的任何信息。

Flutter repo 的代码函数大多是参数未标记的函数final,包括build我见过的所有被重写的方法。

就性能和应用程序重量而言,以下哪一项更好:

@override build(context)

@override build(BuildContext context)

@override build(final BuildContext context)

也许重写函数应该以与超级函数相同的方式定义?build像上面这样可以推断类型的重写函数和其他命名/未命名函数(除了不设置类型使变量动态化之外)之间有什么区别吗,Flutter repo 也是这样写的:

static double _flingDistancePenetration(double t) { // t is not final, although treated as immutable
 return (1.2 * t * t * t) - (3.27 * t * t) + (_initialVelocityPenetration * t);
}
Run Code Online (Sandbox Code Playgroud)

我见过这个关于Java的问题:Why would one mark local Variables and methodparameters as "final" in Java? ,而且,虽然我同意最重要的答案,但我完全不知道为什么 Flutter repo 不这样做。

dart flutter

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

他们为什么在实例名称中使用下划线?

许多公共示例代码,pub插件代码包括带有实例的类和状态,这些实例以下划线作为前缀命名。什么事啊 这种时尚来自哪里?它是Dart中流行的编程模式,还是只是出于品味?:D

class State extends State<widget>{
  int _index = 1;
  _increment() => _index++;
}
Run Code Online (Sandbox Code Playgroud)

dart flutter

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

标签 统计

dart ×4

flutter ×4