Android Support Library 实用介绍

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 中与 AppBarLayoutCoordinatorLayout 等协同响应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:用于包装 ToolbarFrameLayout,提供可视化的缩放拉伸视觉效果(主要作用于 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.+'
参考:

Percent Support Library

专注提供以百分比划分空间的布局类,分别为PercentRelativeLayoutPercentFrameLayout,支持子控件在宽高以及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:环形数组,多用于缓存,减少内存申请释放的性能开销
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,254评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,875评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,682评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,896评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,015评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,152评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,208评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,962评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,388评论 1 304
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,700评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,867评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,551评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,186评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,901评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,142评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,689评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,757评论 2 351

推荐阅读更多精彩内容