一尘不染

有可能在flutter中构建android小部件吗?

flutter

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

是否可以在Dart&Flutter中构建这样的“部件”?还是应该在Java中执行此操作,然后以某种方式将其插入我的flutter应用程序中?

您可以共享一个包含一个资源的示例吗?

编辑:我没有android开发经验,但是听起来像使用可绘制的画布可能会解决问题。我可以找到一些画布抖动代码,但是我还无法连接点。

编辑2:从这个Github问题来看,由于Flutter拥有自己的渲染引擎,因此用flutter编写android
home小部件似乎是不行的。我热衷于学习kotlin来完成此工作,但是如果有人知道不错的教程可以帮助我解决这一问题,那将是非常有用的。


阅读 368

收藏
2020-08-13

共1个答案

一尘不染

正如OP在编辑中提到的那样,当前无法实现,因为Flutter使用了自定义渲染引擎。

小部件的渲染能力非常有限。该文档说明只能使用某些布局。从理论上讲,您可以使用Flutter的软件渲染器在与主要实例不同的实例中渲染图像并进行显示,但这将是非常技术性的,可能不是很高效,而且根本不简单!

是一个关于小部件的非常详细的教程,尽管使用Java,但仍指导您创建一些示例。相同的逻辑仅适用于Kotlin的一些语法更改,因为这些类几乎可以互换。但是,实际上,大多数工作是在android中进行一些布线的布局中。如果您已经熟悉Android和Java,请记住,Kotlin确实会增加您的应用程序大小(The Kotlin runtime adds about 7,000 methods and ~1MB to your debug APK来自android
FAQ上
kotlin),并且由于您的大多数逻辑都应处于混乱状态,因此您可能不会拥有所有这些功能如果您仅使用Kotlin
/ Java代码,那么很多代码(尽管您既不熟悉Java和Kotlin,也可以说Kotlin在某些方面更加友好)。

另外,为了能够在flutter应用程序与java /
kotlin后端之间进行通信,您将需要使用flutter文档中所述的平台通道。

2020-08-13