小火箭香港节点合租
Glance 是 jetpack 的新增的组件能力,注意还是 alpha 版本,如果没有明确需要,了解下即可,当然有时间的也可以提前了解,周末给大家奉上。
今天像往常一样进去 Google 的官方文档查看最新的依赖更新,发现昨天 Google 更新了一批依赖:
发现了我上面箭头标注的这个库,还是非常新鲜的,版本才 1.0.0,而且还是第一个 alpha 版本,这是个新东西啊,名字很眼熟啊!我记得郭霖大神曾经写过一个库也叫 Glance :
看到这个库的简介的时候给我高兴坏了,大致意思是:可以使用 Compose 风格的API为小部件构建布局。
小部件的问题其中有一点就是只能使用 RemotesView 来编写布局,现在看到这个库感觉问题被解决了!!!
依赖添加很简单,如果你的项目中有 Compose 的话,只需要添加下dependencies中的内容即可,下面的应该都配置过,反之都添加下就行。
大家都知道,小部件其实就是一个BroadcastReceiver,所以咱们需要在清单文件中配置下:
写的时候我都懵逼了小火箭香港节点合租。。。什么情况,这是相当于 Glance 重写了下 Compose 中的布局。
还记得之前文章中提到过,小部件中只能画一些简单的布局,我原本以为 Glance 会改变这一状况,没想到。。。。
基本上是预期的效果。来简单说下吧,上面说过,Glance 把用到的可组合项全部重写了一遍,大部分和之前使用方法一致,但还是有些不同的。
Image 虽然看着和之前挺像,但确实不太一样了,咱们先来看下之前 Compose 中的 Image :
上面是之前 Compose 中的 Image 可组合项的方法定义,图片资源就是 Painter,之前如果加载图片的话需要这样写:
发现了吗?有两项不一样,加载图片资源由之前的 Painter 变为了现在的ImageProvider,从上面也能看出ImageProvider的用法,再来看下吧:
可以看到,ImageProvider有三个重载方法可以进行实例化,基本满足了加载 Image 的需求。
没错,onClick 不一样,之前的是点击回调事件,而现在的是 Action,这又是一个比较多的内容了,咱们在下面说。
我在使用这个库的时候一直在考虑这个问题,我为啥要使用这个库呢?为了多导入一些包?为了写法更加复杂一些?为了项目之后更难维护(考虑别人共同维护)?
以前咱们使用小部件的时候都少不了一个东西:PendingIntent ,但是现在在 Glance 中不需要了,改为了更为方便的 Action 。
可以看到SizeMode是一个接口,一共有三个类实现了SizeMode接口,含义都写在了注释中。下面来看下使用方法吧:
最后推荐一下我做的网站,玩Android:,包含详尽的知识体系、好用的工具,还有本公众号文章合集,欢迎体验和收藏!






