【问题标题】:Is it possible to build android widgets in flutter?是否可以在颤振中构建 android 小部件?
【发布时间】:2018-05-10 07:35:35
【问题描述】:

Flutter 大量使用小部件一词的事实使得很难找到有关该主题的文档。 在 Android 上(我相信这在 iOS 上是不可能的),我们可以在我们的主页仪表板上添加小部件,使我们能够查看应用相关信息或触发一键操作,而无需打开相关应用。

是否可以在 Dart & Flutter 中构建这样的“小部件”?或者我应该在 java 中这样做并以某种方式将它插入我的颤振应用程序?

你能分享一个包含一个资源的例子吗?

编辑:我没有 android 开发经验,但听起来使用 a drawable canvas 可能会成功。 我可以找到some canvas flutter code,但我还不能把这些点联系起来。

编辑 2:来自 this Github issue,看起来在 Flutter 中编写 android home 小部件是行不通的,因为 Flutter 有自己的渲染引擎。我热衷于学习 kotlin 来完成这项工作,但如果有人知道很好的教程来帮助我,那将非常有帮助。

【问题讨论】:

标签: android widget dart flutter


【解决方案1】:

正如编辑中提到的 OP,这目前是不可能的,因为 Flutter 使用自定义渲染引擎。

小部件可以呈现的内容非常有限; the documentation 解释说只能使用某些布局。从理论上讲,您可以使用 Flutter 的软件渲染器将图像渲染到与主图像不同的实例中并显示出来,但这将是非常技术性的,可能不是很好的性能,而且根本不简单!

Here 是一个非常详细的小部件教程,它指导您创建一些使用 Java 的示例。同样的逻辑适用于 Kotlin 的一些语法更改,因为这些类几乎可以互换。然而,实际上,大部分工作都在布局中,并在 android 中进行了一些布线;如果您已经熟悉 Android 和 Java,请记住 Kotlin 确实会增加您的应用程序大小(The Kotlin runtime adds about 7,000 methods and ~1MB to your debug APK 来自 kotlin on android FAQ),并且由于您的大部分逻辑应该在颤抖中,您可能不会有如果这就是你使用它的全部,那么所有的 Kotlin/Java 代码(尽管如果你是 Java 和 Kotlin 的新手,Kotlin 可以说在某些方面更友好)。

此外,为了能够在您的 Flutter 应用和 java/kotlin 后端之间进行通信,您需要使用 flutter documentation 中所述的平台通道。

【讨论】:

  • 所以我猜原生安卓动态壁纸会是一样的吗?使用 OpenGL?
  • @rmtmckenzie 应该可以使用这样的方法:medium.com/flutter-community/…
  • @emvaized 这是错误的方式 - OP 询问使用颤振编写主屏幕小部件或操作,而不是在颤振视图中嵌入小部件。
  • @rmtmckenzie 啊,我现在明白了,我误会了……顺便说一句,你对按照我说的去做有什么想法?我提出了关于它的问题,但似乎没有得到足够的关注
猜你喜欢
  • 1970-01-01
  • 2023-03-07
  • 2020-05-30
  • 2019-12-27
  • 2021-08-03
  • 2021-11-25
  • 1970-01-01
  • 2021-04-03
  • 2021-08-07
相关资源
最近更新 更多