尺寸调整指南

当一个Widget被锁屏所持有时,Android框架会忽略minWidth、minHeight、minResizeWidth和minResizeHeight属性字段。如果该Widget同时也可以放置到主屏上,那么这些属性字段依然需要,因为在主屏上会使用它们,但是针对锁屏它们会被忽略。

锁屏Widget的宽度始终是填充在被提供的空间中,它的高度有以下选项:

1.      如果Widget没有标记它的垂直尺寸可调(android:resizeMode=”vertical”),那么它的高度将始终是”small”模式:

在电话的纵向模式中,”small”被定义为显示解锁UI后的剩余空间;

在平板和横向的电话中,”small”是每个设备的基本设置。

2.      如果Widget被标记为垂直尺寸可调,那么在显示解锁UI的纵向电话上,Widget的高度会使用”small”模式。在所有其他情况下,Widget会调整高度以便填充到可用的高度。

使用带有集合的App Widget

Android3.0以后引入了带有集合的App Widget。这些类型的App Widget使用RemoteViewService来显示由远程数据所返回的数据集合,如来自contentprovider的数据。由RemoteViewsService提供的数据会被显示在下列类型之一的View中,我们把这些View叫做“集合View”:

ListView

在一个垂直滚动的列表中显示数据的View。例如,Gmail的App Widget

GridView

在一个二维的可滚动的网格中显示数据的View。例如,Bookmarks的App Widget

StackView

一个堆放卡片的View(有点象关系网),用户可向下或向上来抽取卡片,以便分别的的看前一张或下一张卡片。例如,YouTube和Books中包含的App Widget。

AdapterViewFilpper

一个支持简单ViewAnimator的适配器View,它可以在两个或更多的View之间产生动画。每次只显示一个子View。

在上述的View中,会显示由远程数据所返回的数据集。这就意味着它们要使用一个Adapter把数据跟用户界面绑定。Adapter会把数据集中的每个数据项绑定到每个View对象上。因为这些集合View是由Adapter所支持的,所以Android框架必须包含额外的架构来支持在App Widget中使用它们。在App Widget的内容中,Adapter会被RemoteViewsFactory替代,它只是简单的封装了Adapter的接口。当请求集合中的一个特殊项目时,RemoteViewsFactory会给集合创建并返回一个RemoteViews对象。为了在你的App Widget中包含一个集合View,你必须要实现RemoteViewsService和RemoteViewsFactory接口。

RemoteViewsService是一个服务,它允许远程的适配器来请求RemoteViews对象。

RemoteViewsFactory是一个在集合View和View相关的数据之间的适配器接口,以下代码代码来自StackView Widget示例,它是你用于实现服务和接口的样板代码:

publicclassStackWidgetServiceextendsRemoteViewsService{
    @Override
    public RemoteViewsFactoryonGetViewFactory(Intent intent) {
        return new StackRemoteViewsFactory(this.getApplicationContext(), intent);
    }
}

class StackRemoteViewsFactory implements RemoteViewsService.RemoteViewsFactory {

//... include adapter-like methods here. See the StackViewWidget sample.

}

最新文章

  1. dispatch a action with a timeout
  2. android studio 的配置
  3. selenium更改readonly属性
  4. 【消息队列MQ】各类MQ比较
  5. 我们都忽略了Html5的力量,如果只看成一种技术就大错特错了!
  6. HDU 4632 CF 245H 区间DP(回文)
  7. C语言字符转换ASCII码
  8. DJ_Java_Decompiler新手入门教程
  9. Phone Number 2010年山东省第一届ACM大学生程序设计竞赛
  10. weblogic启动报错--com.octetstring.vde.backend.BackendRoot
  11. AIR使用文件对象操作文件和目录
  12. 兼容IE低版本
  13. Microsoft Dynamics CRM 2011 JS操作集锦
  14. AI佳作解读系列(四)——数据增强篇
  15. docker启动异常driver not supported
  16. python获取数据网页数据并创建文件夹保存(基于python3.6)
  17. DenseNet 论文阅读笔记
  18. HashSet和LinkedHashSet解析
  19. Haskell语言学习笔记(79)lambda演算
  20. Go语言学习笔记(1)——Hello World!

热门文章

  1. linux 配置 mail server
  2. python web
  3. New 和 GetMem 的不同之处
  4. 14.4.7 Configuring the Number of Background InnoDB IO Threads 配置 后台InnoDB IO Threads的数量
  5. AVOS_百度百科
  6. <Win32_14>__win32控件(2)__教你自学掌握所有控件的玩法
  7. 主流JavaScript框架(Dojo、Google Closure、jQuery、Prototype、Mootools和YUI)的分析和对比
  8. GMM的EM算法
  9. 各种oracle10g下载地址(官网网页上好像找不到了)
  10. UVA1450-Airport