Android自5.0后增加了不少新控件,帮助开发者实现了更酷更炫的UI效果。可是对于初学者来说,这些新控件的用法不像老控件那么简单,网上相关的使用介绍也不如老控件那样丰富,种种情况无疑加大了我们学习这些新控件的难度。为此,博主初步整理了Android在5.0和6.0之后的新增控件,及其对应的说明博文,给大家提供一个可资学习和借鉴的索引。

下面是新增控件的索引表格:

兼容包 名称 控件 引入版本
内核 水波图形 RippleDrawable Android 5.0
矢量图形 VectorDrawable Android 5.0
矢量动画 AnimatedVectorDrawable Android 5.0
矢量动画监听器 AnimationCallback Android 6.0
媒体投影管理器 MediaProjectionManager Android 5.0
摄像头二代camera2 CameraManager Android 5.0
CameraDevice Android 5.0
CameraCaptureSession Android 5.0
电话管理器增加双卡双待 TelephonyManager Android 5.0
PDF文件渲染器 PdfRenderer Android 5.0
任务调度器 JobScheduler Android 5.0
任务服务 JobService Android 5.0
v4 下拉刷新布局 SwipeRefreshLayout Android 5.0
抽屉布局 DrawerLayout Android 5.0
滑动面板布局 SlidingPaneLayout Android 5.0
嵌套滚动视图 NestedScrollView Android 5.0
appcompat-v7 工具栏 Toolbar Android 5.0
recyclerview-v7 循环视图 RecyclerView Android 5.0
线性布局管理器 LinearLayoutManager Android 5.0
网格布局管理器 GridLayoutManager Android 5.0
瀑布流网格布局管理器 StaggeredGridLayoutManager Android 5.0
cardview-v7 卡片视图 CardView Android 5.0
palette-v7 调色板 Palette Android 5.0
design 提示条 Snackbar Android 5.0
导航视图 NavigationView Android 5.0
协调布局 CoordinatorLayout Android 5.0
悬浮按钮 FloatingActionButton Android 5.0
底部弹窗 BottomSheetBehavior Android 6.0
应用栏布局 AppBarLayout Android 5.0
可折叠工具栏布局 CollapsingToolbarLayout Android 5.0
侧滑删除 SwipeDismissBehavior Android 5.0
标签布局 TabLayout Android 5.0
文本输入布局 TextInputLayout Android 5.0
文本输入编辑框 TextInputEditText Android 6.0

以上的新控件,在项目中使用的时候,可分为三大类:

1、第一类是内核提供的控件,位于SDK的android.jar中。
这个与系统版本有关,每个版本的android.jar是固定的,有在该内核中定义的控件才能正常调用,没在内核中定义的控件在运行时会扔出类找不到的异常。比如水波图形RippleDrawable和矢量图形VectorDrawable,这两个控件在Android5.0之后的系统内核中提供,所以只有系统版本不低于5.0的手机才能使用它们,运行4.*系统的手机是无法正常调用这两个控件的。

2、第二类是v4兼容库提供的控件,位于SDK的android-support-v4.jar中。
v4库默认会被编译进App的安装包,所以它不需要系统内核支持,可直接运行在4.0之后的所有系统上,并且App工程无需手工导入v4库。使用v4控件唯一需要注意的地方,是布局文件中要引用完整路径的控件名称,如抽屉布局android.support.v4.widget.DrawerLayout、下拉刷新布局android.support.v4.widget.SwipeRefreshLayout等等。

3、第三类是v7兼容库和design库,它们有各自的库工程,开发者要在App工程中手工导入用到的兼容库。
v7与design库导入App工程后,编译出来的App即可兼容4.*的系统。使用v7与design库的控件,类似于使用自定义控件,不但要在布局文件中引用完整路径的控件名称,还要在根布局声明命名空间(即添加属性xmlns:app="http://schemas.android.com/apk/res-auto"),然后方可使用这些控件的自定义属性。这部分控件数量最多,实现的界面特效最丰富,而且互相之间存在依赖关系,如design库依赖于appcompat-v7库,部分design控件如NavigationView还依赖于recyclerview-v7库,所以若要正确使用design库的控件,往往得同时导入好几个相关的兼容库。

Android5.0和6.0之后补充了这么多新控件,自然有部分老控件变过时了,下面就列举部分新旧控件的替代关系:
Toolbar:替代ActionBar
RecyclerView:替代ListView和GridView
NestedScrollView:替代ScrollView
Snackbar:替代Toast
FloatingActionButton:替代ImageButton
TextInputEditText:替代EditText
camera2家族:替代Camera

点此查看Android开发笔记的完整目录

Android5.0和6.0之后新增的控件说明相关推荐

  1. android 5.0新增 ui 控件,android3.0新增ui控件示例说明.doc

    android3.0新增ui控件示例说明 Android3.0新增UI控件 AdapterViewAnimator控件 AdapterViewAnimator(堆View),已知子类有AdapterV ...

  2. VB6.0中,DTPicker日期、时间控件不允许为空时,采用文本框与日期、时间控件相互替换赋值(解决方案)

    VB6.0中,DTPicker日期.时间控件不允许为空时,采用文本框与日期.时间控件相互替换赋值(解决方案) 参考文章: (1)VB6.0中,DTPicker日期.时间控件不允许为空时,采用文本框与日 ...

  3. android github 评分控件_「开源」Arcgis for Android测量工具更新至V1.9,新增绘制控件...

    开源地址:https://github.com/roomanl/ArcgisTool 封装Arcgis Runtime for Android 100.6.0地图基本操作. 包括:测量工具控件及测量接 ...

  4. Asp.net 2.0 动态加载其他子目录用户控件问题

    通常我们要在程序中动态加载用户控件: 方法很简单直接在程序里键入: (usercontrol type)a = (usercontrol type)Page.LoadControl("~/x ...

  5. VB6.0中,DTPicker日期、时间控件不允许为空时,采用文本框与日期、时间控件相互替换赋值(解决方案)...

    VB6.0中,日期.时间控件不允许为空时,采用文本框与日期.时间控件相互替换赋值,或许是一个不错的选择. 实现效果如下图: 文本框txtStopTime1 时间框DTStopTime1(DTPicke ...

  6. Asp.net 2.0 自定义控件开发专题讲解[为用户控件增加DataSource属性, 能够自动识别不同数据源](示例代码下载)...

    (一).  概要 开发<数据绑定用户控件>, 要实现一个DataSource属性, 并且能够自动识别不同的数据源, 如: ArrayList, DataTable, DataSet, XM ...

  7. flashwindow vb_VB6.0 加载ShockwaveFlash(flash)控件

    Private Sub Form_Load() "初始化flash Dim tmpCtl As Object Set tmpCtl = Me.Controls.Add("Shock ...

  8. 为何asp.net2.0中 rendercontrol 对于有些服务器端的控件会不支持

    比如报出 rendercontrol 必须放在具有 runat=server这样的错误 原因: http://topic.csdn.net/t/20051207/21/4444706.html 解决方 ...

  9. Android5.0新控件

    谷歌在推出Android5.0的同时推出了一些新控件,Android5.0中最常用的新控件有下面5种.  1. CardView(卡片视图) CardView顾名思义是卡片视图,它继承FrameLay ...

最新文章

  1. 简明Python3教程 4.安装
  2. 从零点五开始用Unity做半个2D战棋小游戏(十)
  3. Linux usb bus日志如何打开,从linux usb bus节点来认识usb linux usb认识
  4. 从源码角度剖析VC6下的内存分配与切割的运作
  5. SciPy 积分的计算
  6. 内部存储_Mongodb存储特性与内部原理
  7. 迷宫问题 (dfs)
  8. centos7 安装VNC Server
  9. 百面机器学习——svm使用信息熵寻找最优划分
  10. 安卓应用性能调试和优化经验分享
  11. Filter动态代理敏感词汇过滤
  12. 精品、好用、优质、黑科技网站推荐
  13. sap hana安装教程
  14. Postman 接口压力测试
  15. 隧道人员定位管理系统
  16. QQ连连看单机版辅助制作全流程
  17. 中考计算机易错知识点,中考语文常见的易错考点23个
  18. 影视广告创意与制作(二)
  19. 轻松理解LTE网规网优FAQ基本概念
  20. 港美股系统开发软件开发之证券交易软件供应商对比

热门文章

  1. vscode取消底部横滚动条(自动换行)
  2. Python爬虫基本原理
  3. 甘特图看起来很生硬?教你使用智能颜色装饰你的甘特图!(一)
  4. OpenSatck Ironic实现裸机管理
  5. osg+ActiveQT嵌入ie64位
  6. 基于ConvLSTM的伦敦空气质量预测(2) 算法实施
  7. python字符宽度_Python计算字符宽度的方法
  8. Linux 查看磁盘的属性,Windows XP 查看磁盘属性(转)
  9. Java 性能优化系列之3.1[JVM调优]
  10. 服务器系统的安装方法,服务器的操作系统安装方法