原文链接
原文链接:https://guides.codepath.com/android/Design-Support-Library#overview
设计支持库
综述
2015年I/O大会,Google宣布了新的Design Support Library,带来了很多material design组件包括navigation draw view,floating labels, floating action button, snackbars,还有处理动作和滑屏事件的新框架。library支持Android2.1和以上版本。
特性
- FloatingActionButton - 右下角的原型按钮,代表交互中的基本动作,促进现代material design app的关键动作。
- TabLayout - 将tab放入可以在Framement之间切换的ViewPager的应用中的简单方法。
- NavigationView - 从左边提供带有头部和一系列导航条的现代导航抽屉的简单方法。
- SnackBar - 在屏幕底部显示包含文本和可选的唯一动作的按钮。在给定的时间长度后自动超时,通过动画从屏幕上消失。
- TextInputLayout - 在用户输入信息或添加字符的任何文本字段上悬浮显示提示。
- CoordinatorLayout - 在子View之间提供高水平的滚动和触摸事件控制。
- AppBarLayout允许toolbar和其他view相应滑动事件。
- CollapsingToolBarLayout扩展了这些允许用户通过view滚动缩放toolbar。
- Bottom Sheets显示一个从屏幕底部往上滑的sheet。
- PercentRelativeLayout和PercentFrameLayout实现了View占据基于百分比的尺寸percentage-based dimensions.
设置
确定你有Android Gradle插件1.5.0以上版本支持。最新的support design library在pre-Lollipop设备上有问题,如果你没有使用这个最低版本
dependencies {
classpath 'com.android.tools.build:gradle:1.5.0'
}
会触发一个error:Caused by: android.content.res.Resources$NotFoundException: File res/drawable/abc_ic_ab_back_material.xml from drawable resource ID #0x7f020016
这是必须包含的一个新support design library。这个库还依赖于包含AppCompat库的更新版本。如果你目前没使用这个库,看看这个迁移指南。此外,确保这些版本已经更新。
更新你的根 build.gradle
文件
android {
compileSdkVersion 23 // needs to be consistent with major support libs used
}
ext {
supportLibVersion = '23.2' // variable that can be referenced to keep support libs consistent
}
在app/build.gradle
里添加依赖:
dependencies {
compile "com.android.support:appcompat-v7:${supportLibVersion}"
compile "com.android.support:design:${supportLibVersion}"
}
如果你使用RecyclerView, CardView或者其他任何support v7相关的库还需要更新版本。RecyclerView实例有一些新特性使用的最新design support library。
dependencies {
compile "com.android.support:recyclerview-v7:${supportLibVersion}"
}
添加百分比支持库
要添加百分比支持库,需要添加以下声明:
dependencies {
compile "com.android.support:percent:${supportLibVersion}"
}
添加注解库
要使用annotations library,还需要显示在添加到Gradle文件。添加AppCompat或者support design library隐式声明:
dependencies {
compile "com.android.support:support-annotations:${supportLibVersion}"
}
安装库
通常需要打开SDK Manager并确保下载的是最新版的Android Support Repository。当然,AS还会在底部显示缺少的库,你可以点击进行安装并同步工程。需要指定一个有效的库和版本这个过程才会成功,它可以让你不需要打开SDK Manager就进行更新。
如果你使用了任何类型的持续构建系统并需要帮助自动下载support library,可以使用Jake Wharton’s SDK Manager为你下载更新的包。
示例代码
如果你想知道怎样使用这些组件,检出Sample Code。例如percent support library,请看this Sample Code。
官方源码
可以在Android Open Source Project(AOSP)的主机找到这个library的主要发布版本,如果你想知道不同组件可以重写的样式,请参阅链接.
从v23.1.0开始最新的源代码sdk目录中常常包含support library。(即Library/Android/sdk/extras/android/m2repository/com/android/support/design(mac os X系统))
修改日志
v23.1变动
- TextInputLayout和EditText添加了字符计数功能.
- AppBarLayout的滑动特效总可以把加速度标识加入列表.
- AppBarLayout添加了setOnDragListener().
- PercentRelativeLayout支持纵横比属性.
- RecyclerView新的条目动画接口.
- 自定义View可以使用NavigationView行.
v23.1.1变动
- NavigationView包含getHeaderView().
v23.2变动
- 增加对bottom sheets的支持.
参考文献
- https://medium.com/android-bites/first-steps-with-the-design-support-library-8dcf06230ddd
- http://android-developers.blogspot.com/2015/05/android-design-support-library.html
- https://github.com/chrisbanes/cheesesquare
- http://hmkcode.com/material-design-app-android-design-support-library-appcompat/
- https://medium.com/ribot-labs/exploring-the-new-android-design-support-library-b7cda56d2c32
- https://plus.google.com/+AndroidDevelopers/posts/XTtNCPviwpj
- https://code.google.com/p/android/issues/list?can=1&q=label%3AVersion-22.2.1
- https://plus.google.com/+AndroidDevelopers/posts/RZutBRWN6sH?linkId=17978076