Android Support Library 安卓支持库23.1的变化

Android Support Library 是一个代码库集合,它可以提供预构建组件、新功能以及兼容性填充程序,帮助您专注于开发应用的独特组成部分。

在最新发布的 Android Support Library (23.1) 中,您将看到覆盖V4支持库、媒体路由器、回收站视图、应用兼容库、设计、百分比、自定义选项卡、轻松看和调色板支持库的各项改进。让我们详细了解一下这些改进。

V4支持库(Support V4)

V4支持库侧重于通过兼容性填充程序和向后移植特定功能,简化对各种 API 级别的支持。

NestedScrollView 是一个 ScrollView,支持至 API 4 的嵌套回滚。现在,您可以设置一个 OnScrollChangeListener,在滚动的 X 或 Y 位置发生变化时接收回调。

一个全功能媒体回放应用由大量组件构成,其中的许多组件都以 MediaSessionCompat 为中心。媒体按钮接收器是硬件或蓝牙控制中处理回放的控制的重要组成部分,新增的 MediaButtonReceiver 类现已将其正式化。可通过该类,将收到的回放控制转发到某个服务,后者负责管理您的 MediaSessionCompat,重复利用在 API 21 以上级别中已要求提供的回调方法,以及一站式集中为所有 API 级别和所有媒体控制事件提供支持。此外还提供了 MediaSessionCompat 的简化版构造函数,它会自动在您的清单文件中查找媒体按钮接收器,以供与MediaSessionCompat配合使用。

媒体路由器(Media Router)

媒体路由器支持库是用于连接具有 Google Cast 支持的视频和音频设备等远程设备的,以及向这些设备发送媒体回放的关键组件。它还通过 MediaRouteProvider 提供了一种机制,让任何应用都能创建和管理远程媒体回放设备连接。

在此版本中,MediaRouteChooserDialog(控制有效远程设备选择的对话框)和 MediaRouteControllerDialog(用于控制进行中远程回放的对话框)都进行了全新设计,并增加了功能。您会发现,选择器对话框按使用频率对设备排序,并提供了设备类型图标以方便识别不同的设备;而控制器对话框现在可显示当前回放信息(包括专辑封面)。

《Android Support Library 安卓支持库23.1的变化》

现在,两个对话框的内容颜色以您的提醒对话框风格主题的 colorPrimary 为依据,让人感觉它就是应用的自然组成部分:

<style name=”AppTheme” parent=”Theme.AppCompat.Light.DarkActionBar”/>

<item name=”colorPrimary”>@color/primary</item>

<item name=”colorPrimaryDark”>@color/primaryDark</item>

<item name=”alertDialogTheme”>@style/AppTheme.Dialog</item>

</style>

<style name=”AppTheme.Dialog” parent=”Theme.AppCompat.Light.Dialog.Alert”>

<item name=”colorPrimary”>@color/primary</item>

<item name=”colorPrimaryDark”>@color/primaryDark</item>

</style>

回收站视图(RecyclerView)

回收站视图是极其强大而又灵活的,以列表、网格或任意视图显示庞大的数据集。它具有 ListView 或 GridView所不具备的一项优势,内建了添加、删除或重新定位项目时的动画支持。

此版本对动画系统做了重大改进。您可以利用新增 ItemAnimator 的 canReuseUpdatedViewHolder() 方法,选择充分利用现有ViewHolder,从而实现项目内容动画支持。新增的 ItemHolderInfo 及关联 API 让 ItemAnimator 能够灵活地在布局生命周期中正确的时间点收集所需的任何数据,然后将这些信息传入动画回调。

请注意,这个新增的 API 不向后兼容。如果您之前实现了 ItemAnimator,可以改为扩展 SimpleItemAnimator,后者通过包装新 API 来提供旧 API。您还会注意到,一些方法已从ItemAnimator 中完全删除。例如,如果您要调用recyclerView.getItemAnimator().setSupportsChangeAnimations(false),这段代码将不再进行编译。您可以将其替换为以下代码:

ItemAnimator animator = recyclerView.getItemAnimator();

if (animator instanceof SimpleItemAnimator) {

((SimpleItemAnimator) animator).setSupportsChangeAnimations(false);

}

应用兼容库(AppCompat)

应用兼容性支持库的一个作用是,在各 API 级别提供一致的小工具集,包括提供为这些小工具着色,使其与您的品牌和重点色彩相匹配的功能。

此版本增加了着色感知版本的 SeekBar(用于拇指着色)以及 ImageButton 和 ImageView(提供 backgroundTint 支持),当您在布局中使用平台版本时,将自动使用这些增加的版本。您还会发现,SwitchCompat 进行了更新,以匹配 Android 6.0 Marshmallow 的风格。

设计(Design)

《Android Support Library 安卓支持库23.1的变化》

《Android Support Library 安卓支持库23.1的变化》

设计支持库包含许多有助于实现最新 Google 设计规范的组件。

TextInputLayout 通过新增对字符计数的支持扩展了其现有的浮动提示文本和错误指示器功能。

AppBarLayout 支持许多滚动标志,而这些标志会影响子视图对滚动的反应(例如滚动到屏幕以外)。此版本新增了SCROLL_FLAG_SNAP,可确保滚动结束时不会让视图保持部分可见状态。它会将视图滚动到其最接近的边缘,让视图全部可见,或者将视图完全滚动到屏幕以外。您还会发现,AppBarLayout 现在允许用户从 AppBarLayout 内开始滚动,而不是只能从可滚动视图内开始滚动—可通过添加 DragCallback 控制此行为。

NavigationView 提供了一种方便的抽屉式导航栏开发方式,其中包括使用菜单 XML 文件创建菜单项的功能。我们借助通过app:actionLayout 或使用 MenuItemCompat.setActionView() 为项目设置自定义视图的能力扩展了可实现的功能。

百分比(Percent)

百分比支持库提供基于百分比的尺寸和边距,在此版本中新增了通过 app:aspectRatio 设置自定义纵横比的功能。通过仅设置单一宽度或高度并使用 aspectRatio,PercentFrameLayout 或 PercentRelativeLayout 将自动调整至另一尺寸,以便布局使用设置的纵横比。

自定义选项卡(Custom Tabs)

《Android Support Library 安卓支持库23.1的变化》

自定义选项卡支持库允许您的应用利用兼容浏览器的全部功能,包括在使用已有 cookie 的同时仍保持快速加载速度(通过预取)以及自定义外观和操作。

在此版本中,我们新增了几项定制功能,例如通过新增的 enableUrlBarHiding() 方法在向下滚动页面时隐藏 URL 栏。您还可以通过 CustomTabsSession,使用 setActionButton() 更新已启动自定义选项卡中的操作按钮—可完美实现状态变化的视觉指示。

通过 CustomTabsCallback#onNavigationEvent() 的导航事件也进行了扩展,新增了 TAB_SHOWN 和 TAB_HIDDEN 事件,可让您的应用详细了解用户与 Web 内容的交互情况。

轻松看(Leanback)

《Android Support Library 安卓支持库23.1的变化》

轻松看支持库简化了 TV 设备上用户界面的开发。此版本为 GuidedStepFragment 的支持版本新增了GuidedStepSupportFragment,并且改进了动画和转换,还允许将 GuidedStepFragment 置于现有内容之上。

您还可以在 SearchFragment 中为不同类型的搜索完成添加注释,以及为 VerticalGridFragment 提供交错幻灯片转换支持。

调色板(Palette)

现在,用于从图像提取颜色的调色板通过新增的 setRegion() 方法支持从位图的特定区域提取颜色。

SDK 现已推出!

现在就是开始使用 Android Support Library 的最佳时机。您只需在 Android SDK 管理器中更新 Android Support Repository中,便可立即着手开发。

如需深入了解此版本中的每一项 API 改动,请查看完整的 API 差异报告。

链接:http://developer.android.com/sdk/support_api_diff/23.1.0/changes.html?utm_campaign=android_update_important_bug_fixes_101515&utm_source=anddev&utm_medium=blog

如需了解有关 Android Support Library 以及可通过其获得的 API 的更多信息,请访问 Android 开发者站点上的 Support Library 部分。

链接:http://developer.android.com/tools/support-library/index.html?utm_campaign=android_update_important_bug_fixes_101515&utm_source=anddev&utm_medium=blog

原文来自安卓开发者全球博客: android-developers.blogspot.com/

    原文作者:程序猿老王
    原文地址: https://www.jianshu.com/p/71cd0fc5fe51
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞