zoukankan      html  css  js  c++  java
  • Android---App Widget(五)

    尺寸调整指南

    当一个Widget被锁屏所持有时,Android框架会忽略minWidthminHeightminResizeWidthminResizeHeight属性字段。如果该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。例如,GmailApp Widget

    GridView

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

    StackView

    一个堆放卡片的View(有点象关系网),用户可向下或向上来抽取卡片,以便分别的的看前一张或下一张卡片。例如,YouTubeBooks中包含的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,你必须要实现RemoteViewsServiceRemoteViewsFactory接口。

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

    RemoteViewsFactory是一个在集合ViewView相关的数据之间的适配器接口,以下代码代码来自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.

    }

  • 相关阅读:
    Linux系统模拟端口开放程序port 软件的基本使用
    Docker19.03.13离线安装-Docker根目录-Docker常用操作--NVIDIA Docker
    springboot项目启动与停止命令
    两种设备选型的主要性能指标
    docker nginx配置
    使用shell+java 抓取NHK广播
    小程序的测试方法
    adb logcat 查看Android APP日志
    IE11判断是否全是中文的时候无效写法
    C#控制器微信通过encryptedData,iv,Code获取用户信息
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3241614.html
Copyright © 2011-2022 走看看