桌面窗口小部件添加List

@Author GQ 2018年07月08日

练习使用添加窗口小部件功能

长按桌面-添加窗口小部件-找到Flag-拖动到屏幕

效果图


流程

  1. 创建 MyAppWidgetProvider 重写 onUpdate() 方法
  2. 使用 RemoteView 承载小部件的布局
  3. appWidgetManager.updateAppWidget(appWidgetId, mRemoteViews) 方法更新小部件

AppWidgetProvider重写方法

onAppWidgetOptionsChanged 当widget被初次添加或者当widget 的大小被改变时,被调用

onEnabled 第一个widget被创建时调用

onDeleted widget被删除时调用

onDisabled 最后一个widget被删除时调用

  • 重要

onReceive 广播接收处理事件,我们的主要逻辑就需要在这里处理了

创建窗口小部件

  • 继承自 AppWidgetProvider
  • 声明Receiver
<!-- 声明widget对应的AppWidgetProvider --><receiver android:name=".MyAppWidgetProvider"><intent-filter><action android:name="android.appwidget.action.APPWIDGET_UPDATE" /><action android:name="CHANGE_POSITION" />  点击item刷新<action android:name="CHANGE_DATA" />      刷新list列表</intent-filter><meta-data
                android:name="android.appwidget.provider"android:resource="@xml/appwidget_info" />   声明小部件布局</receiver>

声明小部件

<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"android:initialLayout="@layout/widget_layout"android:minHeight="150dp"android:minWidth="326dp"android:previewImage="@mipmap/ic_flag"android:resizeMode="horizontal|vertical"android:widgetCategory="home_screen|keyguard"><!--android:minWidth : 最小宽度android:minHeight : 最小高度android:updatePeriodMillis : 更新widget的时间间隔(ms),"86400000"为1个小时android:previewImage : 添加小部件时的预览图片android:initialLayout : 加载到桌面时对应的布局文件android:resizeMode : widget可以被拉伸的方向。horizontal表示可以水平拉伸,vertical表示可以竖直拉伸android:widgetCategory : widget可以被显示的位置。home_screen表示可以将widget添加到桌面,keyguard表示widget可以被添加到锁屏界面。android:initialKeyguardLayout : 加载到锁屏界面时对应的布局文件--></appwidget-provider>

在小部件使用List

  • 创建 ListViewService 继承 RemoteViewsService
class ListViewService : RemoteViewsService() {override fun onGetViewFactory(intent: Intent?): RemoteViewsFactory {return ListRemoteViewsFactory(this.applicationContext, intent)}
}
  • Manifest 声明 Service
 <service
            android:name=".ListViewService"android:enabled="true"android:exported="false"android:permission="android.permission.BIND_REMOTEVIEWS" />

ListRemoteViewsFactory

  • 继承自 RemoteViewsService.RemoteViewsFactory
  • 主要复写方法 :

onCreate()

onDataSetChanged()

getCount()

getViewAt()

onDestroy()

有点类似于Adapter的内容,具体内容可以查看demo

查看Demo

桌面窗口小部件添加List相关推荐

  1. Android 如何预置桌面上的应用程序图标、快捷方式图标或者窗口小部件?

    前言          欢迎大家我分享和推荐好用的代码段~~ 声明          欢迎转载,但请保留文章原始出处:          CSDN:http://www.csdn.net        ...

  2. html 添加窗口小部件,如何:为自定义窗口小部件定义主题(样式)项

    波斯汪 是的,有一种方法:假设您有一个小部件的属性声明(在中attrs.xml):    声明用于样式参考的属性(在中attrs.xml):    为小部件声明一组默认属性值(在中styles.xml ...

  3. Android 之窗口小部件详解--App Widget

    1 App Widget简介 App Widget是应用程序窗口小部件(Widget)是微型的应用程序视图,它可以被嵌入到其它应用程序中(比如桌面)并接收周期性的更新.你可以通过一个App Widge ...

  4. android学习笔记---61_Widgets,窗口小部件的制作...

    2013/5/20 61_Widgets ------------------ Java技术qq交流群:JavaDream:2515720721.Widgets就是指窗口小部件,就是浮动在窗口中的部件 ...

  5. Android -窗口小部件开发(App Widgets) 3部分

    原文地址:http://blog.csdn.net/iefreer/article/details/4626274. (一) 应用程序窗口小部件App Widgets 应用程序窗口小部件(Widget ...

  6. Android应用小工具(窗口小部件)

    Widget是可以在其他应用程序被嵌入和接收定期更新的微型应用程序视图. 在创建一个应用程序窗口小部件,需要满足以下条件: AppWidgetProviderInfo--描述元数据为应用窗口小部件,如 ...

  7. Android 之窗口小部件高级篇--App Widget 之 RemoteViews - 跨到对岸去

    在之前的一篇博文( Android 之窗口小部件详解--App Widge t)中,已经介绍了App Widget的基本用法和简单实例.这篇主要讲解 App Widget 的高级内容,即通过 Remo ...

  8. 如何将世界时钟和时区小部件添加到您的iPhone

    When you work remotely or have friends and family who live in another country, it's important to kno ...

  9. Unity3D Editor 编辑器扩展2 选取物体、撤销操作和窗口小部件的显示

    环境:Unity2017.2 语言:C# 总起: 今天主要介绍以下内容: 1.通过MenuCommand.Selection获取选中对象: 2.通过Undo编写可撤销的命令: 3.窗口小部件的显示. ...

最新文章

  1. 揭秘鸿蒙系统中的 JS 开发框架
  2. CSS布局代码:两列布局实例
  3. 成功解决ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any(
  4. 教你使用TensorFlow2判断细胞图像是否感染
  5. 【广州/深圳 活动】 MVP社区巡讲
  6. dataTable删除行
  7. 深入理解设计模式(22):享元模式
  8. linux追加SQL结果到文件,RAC环境下误操作将数据文件添加到本地存储
  9. LIS (nlogn)的算法
  10. spring-data-redis和jedis版本对应问题
  11. Android Studio 上传aar(Library)到JCenter
  12. 【基础知识】~ 集成电路设计流程,以及各阶段所使用的EDA工具
  13. 锁定计算机还能远程控制,我的电脑可能被远程控制
  14. c语言加油站仿真实验报告,c程序队列实现模拟加油站研讨.ppt
  15. erlang之ets总结
  16. bugku ctf 备份是个好习惯 (听说备份是个好习惯)
  17. JavaScript介绍及其特点
  18. 在html中设置全局字体样式
  19. linux corntab下的关机命令,centos6下定时任务crontab命令的使用 | 雷雨博客
  20. 微信分享网页链接自定义图片和文字描述

热门文章

  1. 操作系统学习笔记——第九讲——虚拟内存(9.4页框分配和颠簸)
  2. matlab khatri rao,一种低复杂度高准确度的Khatri-Rao 积分解算法
  3. win7 计算机点管理没反应,win7系统电脑点关机没反应的解决方法
  4. surf算法原理-包你明白surf过程
  5. 航天信息a3服务器怎么打开,航天信息 睿财A3 使用说明
  6. vim乱码问题的解决方法
  7. mathtype中的字号与word相对应
  8. SBAS-INSAR结果转点状图
  9. linux第一单元检测二,LINUX REDHAT第一单元文档
  10. 字节跳动Java后端面试真题,看完你学会了吗,「附面试福利」