V4,V7,V13兼容包
来源:互联网 发布:js 页面加载后 合计 编辑:程序博客网 时间:2024/05/18 03:51
引言
Google为了在较低版本中兼容高版本的控件和布局以及相关的一些主题(Theme),推出了兼容包,方便开发人员在较低版本中使用高版本的效果。因此,我们经常会看到v4,v7,v13,v14,v17等数字以及带有Support的包,下面我们就来理清这些数字所代表的含义,了解它们的区别和应用场景,便于以后编程的时候选取合适的兼容包。
关于Support包
- support-v4
该系列包用在API Level 4(即Android 1.6)或者更高版本以上。它包含了相对于正常SDK中更多的内容。比如说:Fragment、NotificationCompat、LoadBroadcastManager、ViewPager、PageTabStrip、Loader、FileProvider等。
support-v7
该系列包是为了考虑在API level 7(Android 2.1)及以上使用高版本效果而设计的,v7包含了v4的所有效果(v7中包含v4包的,即v7依赖于v4),v7当中支持了很多新的效果,最新的版本中还支持了Material Design的多种新的布局和空间。比如说:RecyclerView、TabLayout、ToolBar、CardView等等新的包。
注意:需要导入AppCompat兼容包才能正常使用v7的功能
support-v13
该兼容包系列主要是为了兼容API level 13(Android 3.2)以上的,是为了针对于平板兼容开发的,由于平板屏幕较大,因此该系列增强的对Fragment效果的支持,使得Fragment能够在平板的各个版中兼容(一般手机开发者不用该包)。
support-v14,v17
v14(兼容4.0及以上)系列并没有见过有使用的地方,因此这里不赘述,不过手机开发应该很少用到;
v17(兼容4.2及以上)主要是为了支持电视设备,并为电视设备提供了一系列的组件。如下:
BrowseFragment, DetailFragment, PlaybasckOverlayFragment, SearchFragment
具体导入跟上面v4、v7一样。
关于Tehme
对于Theme,很多人都还不太明白(现度娘的( ̄▽ ̄)”),我们来介绍下各种Theme的概念。
- Hoho Theme
在4.0之前Android可以说是没有设计可言的,在4.0之后推出了Android Design,从此Android在设计上有了很大的改善,而在程序实现上相应的就是Holo风格,所以你看到有类似 Theme.Holo.Light、 Theme.Holo.Light.NoActionBar.Fullscreen等主题,就是4.0的设计风格,但是为了让4.0之前的版本也能有这种风格怎么办呢?这个时候就不得不引用v7包了,所以对应的就有Theme.AppCompat.Light、 Theme.AppCompat.Light.DarkActionBar,如果你的程序最小支持的版本是4.0,那么可以不用考虑v7的兼容。
- Material Design Theme
去年的5.0版本,Android推出了Material Design的概念,这是在设计上Android的又一大突破。对应的程序实现上就有 Theme.Material.Light、 Theme.Material.Light.DarkActionBar等,但是这种风格只能应用在在5.0版本的手机,如果在5.0之前应用Material Design该怎么办呢?同样的引用appcompat-v7包,这个时候的Theme.AppCompat.Light、 Theme.AppCompat.Light.DarkActionBar就是相对应兼容的Material Design的Theme。
注意事项
gradle引用appcompat-v7包的时候就不需要引用v4了,因为v7里默认包含了v4包;
compile ‘com.android.support:appcompat-v7:21.0.3’ 中的21代表API level 21推出的兼容包,所以如果你引用的是21之前的版本,则默认这些Theme.AppCompat.Light是Holo风格的,从21开始的版本默认是Material风格
使用appcompat之后,你的所有的Activity应该继承自ActionBarActivity,而ActionBarActivity继承自FragmentActivity,所以放心的使用Fragment;
阅读全文
2 0
- V4,V7,V13兼容包
- android support v4,v7,v13兼容包及其它依赖包
- app包下的fragment 和 v4 包下的fragment的区别 以及兼容包support v4 v7 v13
- V4,V7.V13包,拿走不谢!
- Android兼容包Support v4.v7.v13区别与应用场景
- Android兼容包Support v4.v7.v13区别与应用场景
- Android兼容包Support v4.v7.v13区别与应用场景
- Android兼容包Support v4.v7.v13区别与应用场景
- Android Studio v4,v7,v13包兼容问题,项目同时导入v7、v13包处理方法
- Android Support兼容包详解<v4、v7>
- Android Support v4,v7,v13的区别以及 v4,v7包冲突问题
- android support-v4、v7、v13
- 关于v4,v7和v13
- 在Eclipse添加Android兼容包( v4、v7 appcompat )
- 在Eclipse添加Android兼容包( v4、v7 appcompat )
- android v4/v7兼容包的源码引用
- 在Eclipse添加Android兼容包( v4、v7 appcompat )
- 在Eclipse添加Android兼容包( v4、v7 appcompat )
- Moves in squared strings (I) -- 7Kyu
- 拦截导弹(规律:下降子序列的个数等于最长上升子序列的长度)
- 使用 eclipse 编写 xtend
- SSM整合时的xml配置参考
- 计算机视觉资源文件--链接整理
- V4,V7,V13兼容包
- Nginx负载均衡
- Android 二级图片缓存,图片优化,图片异步加载框架设计
- Vue2 自定义全局指令Vue.directive和指令的生命周期
- Spring Cloud 父项目建立
- js:for、$.each、 forEach和break和continue
- position 定位属性之absolute与fixed的区别
- Linux中buffer cache 与 page cache的区别
- C语言解题出现的提示