RemoteViews类

RemoteViews

顾名思义,它是一个远程视图。App Widget中的视图,都是通过RemoteViews表现的。

在RemoteViews的构造函数中,通过传入layout文件的id来获取 “layout文件对应的视图(RemoteViews)”;然后,调用RemoteViews中的方法能对layout中的组件进行设置(例如,可以调用setTextViewText()来设置TextView组件的文本,可以调用setOnClickPendingIntent() 来设置Button的点击响应事件)。

因此,我们可以将 “RemoteViews 看作是 layout文件中所包含的全部视图的集合”。

RemoteViewsService

RemoteViewsService,是管理RemoteViews的服务。

一般,当App Widget 中包含“GridView、ListView、StackView等”集合视图时,才需要使用RemoteViewsService来进行更新、管理。(集合视图是指GridView、ListView、StackView等包含子元素的视图)

RemoteViewsService更新“集合视图”的一般步骤是:

(01) 通过setRemoteAdapter来设置 “RemoteViews对应RemoteViewsService”。

(02) 之后在RemoteViewsService中,实现RemoteViewsFactory接口。然后,在RemoteViewsFactory接口中对“集合视图”的各个子项进行设置(“集合视图”的各个子项:例如,GridView的每一个格子都是一个子项;ListView中的每一列也是一个子项)。

因此,我们可以将 “RemoteViewsService 看作是 管理layout中集合视图的服务”。

 RemoteViewsFactory

通过RemoteViewsService中的介绍,我们可以了解“RemoteViewsService是通过RemoteViewsFactory来具体管理layout中集合视图的”,即“RemoteViewsFactory管理集合视图的实施者”。

RemoteViewsFactory是RemoteViewsService中的一个接口。RemoteViewsFactory提供了一系列的方法管理“集合视图”中的每一项。例如:

(01)RemoteViews getViewAt(int position)

通过getViewAt()来获取“集合视图”中的第position项的视图,视图是以RemoteViews的对象返回的。

(02)int getCount()

通过getCount()来获取“集合视图”中所有子项的总数。

因此,我们可以将 “RemoteViewsFactory 看作是 layout中集合视图管理的具体实施者”。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容