Android Support Library 實(shí)用介紹

support v4

最基礎(chǔ)的兼容包旷赖,支持兼容至 API 4 (SDK 1.6)寞宫,新建項(xiàng)目時(shí)默認(rèn)自動(dòng)加載供炼,主要包含F(xiàn)ragment支持、ViewPager涨薪、DrawerLayout等

  • ColorUtils:顏色疊加復(fù)合骑素、混合;亮度刚夺、對(duì)比度計(jì)算献丑;HSL、LAB侠姑、XYZ模式轉(zhuǎn)換
  • RoundedBitmapDrawableFactory:構(gòu)造圓角Drawable對(duì)象
  • LocalBroadcastManager:App內(nèi)本地廣播
  • PermissionChecker:權(quán)限檢查器创橄,檢查當(dāng)前App授權(quán)狀態(tài)時(shí),也可通過ContextCompat的checkSelfPermission方法執(zhí)行结借。配合ActivityCompat的requestPermissions筐摘、shouldShowRequestPermissionRationale方法請(qǐng)求授權(quán)和判斷是否需要向用戶解釋權(quán)限用途。覆蓋Activity的onRequestPermissionsResult方法接收權(quán)限申請(qǐng)結(jié)果船老。權(quán)限名稱字符串可從Manifest.permission對(duì)象中提取咖熟。
    也可使用第三方庫(kù) PermissionsDispatcher,以注解方式自動(dòng)柳畔、快速執(zhí)行權(quán)限申請(qǐng)邏輯馍管。
  • DrawerLayout:側(cè)滑菜單
  • SwipeRefreshLayout:下拉刷新
  • SlidingPaneLayout:多列面板布局,主要用于平板設(shè)備
  • ViewDragHelper:用于拖動(dòng)手勢(shì)的輔助解析類
  • ListViewAutoScrollHelper:邊緣觸發(fā)持續(xù)滾動(dòng)的幫助類
  • NestedScrollView:允許父容器與當(dāng)前 ScrollView 分享共同處理一個(gè)touch(滾動(dòng))事件能力的增強(qiáng)型 ScrollView薪韩,主要用于 Material Design 中與 AppBarLayout确沸、CoordinatorLayout 等協(xié)同響應(yīng)UI動(dòng)畫
  • Space:輕量級(jí)View,僅用于產(chǎn)生間距分離兩個(gè)Views

support v7

常用兼容包俘陷,支持兼容至 API 7 (SDK 2.1)罗捎,包含AppCompatActivity、Toolbar等(不包含v4包提供的資源拉盾,需同時(shí)引入v4包)

  • AppCompatActivity:支持Toolbar和Fragment
  • Toolbar
  • v7-recyclerview:用于取代GridView和ListView
  • v7-cardview:卡片式設(shè)計(jì)UI
  • v7-gridLayout:網(wǎng)格布局Layout
  • v7-palette:用于分析圖像中某種特征顏色的工具

Design Support Library

提供符合 Material Design 設(shè)計(jì)風(fēng)格的標(biāo)準(zhǔn)控件桨菜,兼容至 Android 2.2(API 8)。

  • Snackbar:類似Toast模式的臨時(shí)消息展示視圖捉偏,并提供按鈕在有限時(shí)間內(nèi)觸發(fā)反饋(一定時(shí)間后自動(dòng)消失)
  • TextInputLayout:用于作為 EditText (建議使用 TextInputEditText)的父容器倒得,以浮動(dòng) Label 方式展示 Hint 內(nèi)容,并可以代碼方式指定具體顯示的提示文字和樣式夭禽,如 Error 等
  • TextInputEditText:EditText 子類霞掺,用于在橫屏模式的全屏鍵盤(extract mode)下,恢復(fù)提示文本的顯示
  • Floating Action Button:浮動(dòng)的 “ + ”(或設(shè)置為其他圖形) 按鈕
  • TabLayout:類似于 PagerSlidingTabStrip 的選項(xiàng)卡導(dǎo)航欄
  • NavigationView:用于在 DrawerLayout 中作為側(cè)拉導(dǎo)航菜單標(biāo)準(zhǔn)組件讹躯,通過 app:headerLayout 指定頭布局菩彬,通過 app:menu 指定菜單區(qū)域布局(通過標(biāo)準(zhǔn) menu 元素布局自動(dòng)生成)
  • CoordinatorLayout:通過指定 Behavior 處理器對(duì)特定的 ChildView 相對(duì)其他 DependencyView 的位置變化進(jìn)行響應(yīng)(或者說做相對(duì)同步移動(dòng)布局)缠劝,也可以做位置變化以外的其他響應(yīng)動(dòng)作(透明度、尺寸等)
    • Behavior:用于指定當(dāng)前View(Child)相對(duì)于其他View(Dependency)作出自定義響應(yīng)的邏輯腳本監(jiān)聽類
    • app:layout_behavior:用于 CoordinatorLayout 里的 ChildView 上挤巡,指定當(dāng)前 View 相對(duì)于其他 View 的相對(duì)動(dòng)作響應(yīng)處理器
  • AppBarLayout:用于將多個(gè)組件組合作為一個(gè) AppBar 的垂直 LinearLayout 容器剩彬,可與其他組件產(chǎn)生互動(dòng)動(dòng)畫(例如在 ScrollView 滾動(dòng)時(shí)酷麦,該 AppBar 同步消失等矿卑,通常搭配 NestedScrollView 使用)。通過其子View的 app:layout_scrollFlags 屬性沃饶,指定各部分的同步滾動(dòng)表現(xiàn)母廷。支持同步滾動(dòng)的組件類需實(shí)現(xiàn) NestedScrollingChild 接口(此后可通過 ViewCompat 等類設(shè)置開關(guān)),或直接使用 NestedScrollView
  • NestedScrollView:位于 v4 support 包中糊肤,主要目的與 AppBarLayout 配合在 CoordinatorLayout 布局下實(shí)現(xiàn)相對(duì)滾動(dòng)動(dòng)作琴昆,常直接使用內(nèi)置 Behavior@string/appbar_scrolling_view_behavior
  • CollapsingToolbarLayout:用于包裝 ToolbarFrameLayout,提供可視化的縮放拉伸視覺效果(主要作用于 Toolbar 與其背景圖片)馆揉,需要放置在 AppBarLayout 下作為直接子View使用业舍,使用方式可參考 玩轉(zhuǎn)AppBarLayout
  • BottomSheetBehavior:以底部上拉菜單形式滑動(dòng)推出View,支持拖動(dòng)占滿全屏升酣,常用于 NestedScrollView 中的 app:layout_behavior 參數(shù)中舷暮,在 CoordinatorLayout 布局下生效,可通過 BottomSheetBehavior.from(View) 方式取得與View綁定的 Behavior 對(duì)象噩茄,并手動(dòng)設(shè)置狀態(tài)進(jìn)行彈出 / 隱藏
  • BottomSheetDialog:以 BottomSheet 形式從底部推出的 Dialog下面,基于標(biāo)準(zhǔn) Dialog,可填充任何自定義View绩聘,自動(dòng)高亮模式(背景變暗)
  • BottomSheetDialogFragment:DialogFragment 形式的 BottomSheetDialog(Google推薦使用 DialogFragment 來創(chuàng)建自定義 Dialog沥割,提供類似 Fragment 的生命周期管理,自動(dòng)維護(hù)不同屏幕環(huán)境下的表現(xiàn)和自動(dòng)現(xiàn)場(chǎng)恢復(fù))

※ Material Design 主題顏色可通過 style 中的 colorAccent 變量來指定

參考:

Annotations Support Library

一組 Android 專用的注解凿菩,用于標(biāo)記資源類型机杜、運(yùn)行線程、數(shù)值范圍衅谷、非空椒拗、權(quán)限、保留不做混淆標(biāo)記等目的会喝。常用于輔助調(diào)用者使用符合協(xié)議規(guī)范的參數(shù)或調(diào)用方式陡叠,減少歧義邏輯錯(cuò)誤。

compile 'com.android.support:support-annotations:25.+'
參考:

Percent Support Library

專注提供以百分比劃分空間的布局類肢执,分別為PercentRelativeLayoutPercentFrameLayout枉阵,支持子控件在寬高以及margin上使用百分比數(shù)字進(jìn)行約束:

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專用的幾個(gè)結(jié)構(gòu)類

  • SparseArray:稀疏數(shù)組
  • atomic包:原子級(jí)同步類型
  • CircularArray:環(huán)形數(shù)組,多用于緩存预茄,減少內(nèi)存申請(qǐng)釋放的性能開銷
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末兴溜,一起剝皮案震驚了整個(gè)濱河市侦厚,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌拙徽,老刑警劉巖刨沦,帶你破解...
    沈念sama閱讀 212,383評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異膘怕,居然都是意外死亡想诅,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門岛心,熙熙樓的掌柜王于貴愁眉苦臉地迎上來来破,“玉大人,你說我怎么就攤上這事忘古∨墙” “怎么了?”我有些...
    開封第一講書人閱讀 157,852評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵髓堪,是天一觀的道長(zhǎng)送朱。 經(jīng)常有香客問我,道長(zhǎng)干旁,這世上最難降的妖魔是什么驶沼? 我笑而不...
    開封第一講書人閱讀 56,621評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮疤孕,結(jié)果婚禮上商乎,老公的妹妹穿的比我還像新娘。我一直安慰自己祭阀,他們只是感情好鹉戚,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,741評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著专控,像睡著了一般抹凳。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上伦腐,一...
    開封第一講書人閱讀 49,929評(píng)論 1 290
  • 那天赢底,我揣著相機(jī)與錄音,去河邊找鬼柏蘑。 笑死幸冻,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的咳焚。 我是一名探鬼主播洽损,決...
    沈念sama閱讀 39,076評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼革半!你這毒婦竟也來了碑定?” 一聲冷哼從身側(cè)響起流码,我...
    開封第一講書人閱讀 37,803評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎延刘,沒想到半個(gè)月后漫试,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,265評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡碘赖,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,582評(píng)論 2 327
  • 正文 我和宋清朗相戀三年驾荣,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片崖疤。...
    茶點(diǎn)故事閱讀 38,716評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡秘车,死狀恐怖典勇,靈堂內(nèi)的尸體忽然破棺而出谜洽,到底是詐尸還是另有隱情养匈,我是刑警寧澤,帶...
    沈念sama閱讀 34,395評(píng)論 4 333
  • 正文 年R本政府宣布,位于F島的核電站仰禀,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏妒茬。R本人自食惡果不足惜束倍,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,039評(píng)論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望乱顾。 院中可真熱鬧板祝,春花似錦、人聲如沸走净。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)伏伯。三九已至橘洞,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間说搅,已是汗流浹背炸枣。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留弄唧,地道東北人适肠。 一個(gè)月前我還...
    沈念sama閱讀 46,488評(píng)論 2 361
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像候引,于是被迫代替她去往敵國(guó)和親侯养。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,612評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容