support v4
最基础的兼容包,支持兼容至 API 4 (SDK 1.6),新建项目时默认自动加载,主要包含Fragment支持、ViewPager、DrawerLayout等
- ColorUtils:颜色叠加复合、混合;亮度、对比度计算;HSL、LAB、XYZ模式转换
- RoundedBitmapDrawableFactory:构造圆角Drawable对象
- LocalBroadcastManager:App内本地广播
- PermissionChecker:权限检查器,检查当前App授权状态时,也可通过ContextCompat的checkSelfPermission方法执行。配合ActivityCompat的requestPermissions、shouldShowRequestPermissionRationale方法请求授权和判断是否需要向用户解释权限用途。覆盖Activity的onRequestPermissionsResult方法接收权限申请结果。权限名称字符串可从Manifest.permission对象中提取。
也可使用第三方库 PermissionsDispatcher,以注解方式自动、快速执行权限申请逻辑。 - DrawerLayout:侧滑菜单
- SwipeRefreshLayout:下拉刷新
- SlidingPaneLayout:多列面板布局,主要用于平板设备
- ViewDragHelper:用于拖动手势的辅助解析类
- ListViewAutoScrollHelper:边缘触发持续滚动的帮助类
- NestedScrollView:允许父容器与当前 ScrollView 分享共同处理一个touch(滚动)事件能力的增强型 ScrollView,主要用于 Material Design 中与
AppBarLayout
、CoordinatorLayout
等协同响应UI动画 - Space:轻量级View,仅用于产生间距分离两个Views
support v7
常用兼容包,支持兼容至 API 7 (SDK 2.1),包含AppCompatActivity、Toolbar等(不包含v4包提供的资源,需同时引入v4包)
- AppCompatActivity:支持Toolbar和Fragment
- Toolbar
- v7-recyclerview:用于取代GridView和ListView
- v7-cardview:卡片式设计UI
- v7-gridLayout:网格布局Layout
- v7-palette:用于分析图像中某种特征颜色的工具
Design Support Library
提供符合 Material Design 设计风格的标准控件,兼容至 Android 2.2(API 8)。
- Snackbar:类似Toast模式的临时消息展示视图,并提供按钮在有限时间内触发反馈(一定时间后自动消失)
- TextInputLayout:用于作为
EditText
(建议使用TextInputEditText
)的父容器,以浮动 Label 方式展示 Hint 内容,并可以代码方式指定具体显示的提示文字和样式,如 Error 等 - TextInputEditText:
EditText
子类,用于在横屏模式的全屏键盘(extract mode)下,恢复提示文本的显示 - Floating Action Button:浮动的 “ + ”(或设置为其他图形) 按钮
- TabLayout:类似于
PagerSlidingTabStrip
的选项卡导航栏 - NavigationView:用于在
DrawerLayout
中作为侧拉导航菜单标准组件,通过app:headerLayout
指定头布局,通过app:menu
指定菜单区域布局(通过标准menu
元素布局自动生成) -
CoordinatorLayout:通过指定
Behavior
处理器对特定的 ChildView 相对其他 DependencyView 的位置变化进行响应(或者说做相对同步移动布局),也可以做位置变化以外的其他响应动作(透明度、尺寸等)- Behavior:用于指定当前View(Child)相对于其他View(Dependency)作出自定义响应的逻辑脚本监听类
- app:layout_behavior:用于
CoordinatorLayout
里的 ChildView 上,指定当前 View 相对于其他 View 的相对动作响应处理器
-
AppBarLayout:用于将多个组件组合作为一个 AppBar 的垂直
LinearLayout
容器,可与其他组件产生互动动画(例如在ScrollView
滚动时,该 AppBar 同步消失等,通常搭配NestedScrollView
使用)。通过其子View的app:layout_scrollFlags
属性,指定各部分的同步滚动表现。支持同步滚动的组件类需实现NestedScrollingChild
接口(此后可通过ViewCompat
等类设置开关),或直接使用NestedScrollView
类 - NestedScrollView:位于 v4 support 包中,主要目的与
AppBarLayout
配合在CoordinatorLayout
布局下实现相对滚动动作,常直接使用内置Behavior
:@string/appbar_scrolling_view_behavior
- CollapsingToolbarLayout:用于包装
Toolbar
的FrameLayout
,提供可视化的缩放拉伸视觉效果(主要作用于Toolbar
与其背景图片),需要放置在AppBarLayout
下作为直接子View使用,使用方式可参考 玩转AppBarLayout - BottomSheetBehavior:以底部上拉菜单形式滑动推出View,支持拖动占满全屏,常用于
NestedScrollView
中的app:layout_behavior
参数中,在CoordinatorLayout
布局下生效,可通过BottomSheetBehavior.from(View)
方式取得与View绑定的Behavior
对象,并手动设置状态进行弹出 / 隐藏 - BottomSheetDialog:以 BottomSheet 形式从底部推出的 Dialog,基于标准 Dialog,可填充任何自定义View,自动高亮模式(背景变暗)
- BottomSheetDialogFragment:DialogFragment 形式的
BottomSheetDialog
(Google推荐使用 DialogFragment 来创建自定义 Dialog,提供类似 Fragment 的生命周期管理,自动维护不同屏幕环境下的表现和自动现场恢复)
※ Material Design 主题颜色可通过 style 中的 colorAccent 变量来指定
参考:
Annotations Support Library
一组 Android 专用的注解,用于标记资源类型、运行线程、数值范围、非空、权限、保留不做混淆标记等目的。常用于辅助调用者使用符合协议规范的参数或调用方式,减少歧义逻辑错误。
compile 'com.android.support:support-annotations:25.+'
参考:
- Improve Code Inspection with Annotations
- Android注解支持(Support Annotations)
- 在 Android 使用 Support Annotations 注解优化代码
- Android 注解
Percent Support Library
专注提供以百分比划分空间的布局类,分别为PercentRelativeLayout
与PercentFrameLayout
,支持子控件在宽高以及margin上使用百分比数字进行约束:
compile 'com.android.support:percent:22.2.0'
<android.support.percent.PercentFrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_heightPercent="20%"
app:layout_widthPercent="30%"/>
...
Android SDK专用的几个结构类
- SparseArray:稀疏数组
- atomic包:原子级同步类型
- CircularArray:环形数组,多用于缓存,减少内存申请释放的性能开销