????????這是一款可以通過簡潔鏈?zhǔn)秸{(diào)用坯约,一行代碼實(shí)現(xiàn)引導(dǎo)層的顯示瞪浸,自動(dòng)判斷首次顯示遇革,當(dāng)然也可以通過參數(shù)配置來滿足不同的顯示邏輯和需求什燕。
????????通過自定義layout.xml實(shí)現(xiàn)文本及image的添加粘勒,非常方便位置的調(diào)整,避免代碼調(diào)整各種不好控制的情況:實(shí)驗(yàn)5秋冰,6次才最終確定文字等的位置仲义。
效果
依賴
? ? ? ? ?? compileOnly 'com.android.support:appcompat-v7:25.3.1'
導(dǎo)入
????????????項(xiàng)目的build.gradle添加
????????????????????allprojects {
????????????????????????repositories {
????????????????????????...
????????????????????????maven { url 'https://jitpack.io' }
? ? ? ? ? ? ? ? ? ? ?? }
????????????????????}
? ? ? ? ?? module的build.gradle添加
????????????????????dependencies {
??????????????????????????????compile 'com.github.huburt-Hu:NewbieGuide:v2.4.0'
????????????????????}
確保你的項(xiàng)目中已經(jīng)依賴了appcompat-v7
簡單使用
NewbieGuide.with(activity)
? ? ? ? .setLabel("guide1")
? ? ? ? .addGuidePage(GuidePage.newInstance()
? ? ? ? ? ? .addHighLight(btnSimple)
? ? ? ? ? ? .setLayoutRes(R.layout.view_guide_simple))
? ? ? ? .show();
其中:
????????with方法可以傳入Activity或者Fragment婶熬,獲取引導(dǎo)頁的依附者剑勾。Fragment中使用建議傳入fragment,內(nèi)部會(huì)添加監(jiān)聽赵颅,當(dāng)依附的Fragment銷毀時(shí)虽另,引導(dǎo)層自動(dòng)消失。
????????setLabel方法用于設(shè)置引導(dǎo)頁的標(biāo)簽饺谬,區(qū)別不同的引導(dǎo)頁捂刺,該方法必須調(diào)用設(shè)置谣拣,否則會(huì)拋出異常。內(nèi)部使用該label控制引導(dǎo)頁的顯示次數(shù)族展。
????????addGuidePage方法添加一頁引導(dǎo)頁森缠,這里的引導(dǎo)層可以有多個(gè)引導(dǎo)頁,但至少需要一頁仪缸。
????????GuidePage即為引導(dǎo)頁對象贵涵,表示一頁引導(dǎo)頁,可以通過.newInstance()創(chuàng)建對象恰画。并通過addHighLight添加一個(gè)或多個(gè)需要高亮的view宾茂,該方法有多個(gè)重載,可以設(shè)置高亮的形狀拴还,以及padding等(默認(rèn)是矩形)跨晴。setLayoutRes方法用于引導(dǎo)頁說明布局,就是上圖的說明文字的布局片林。
????????show方法直接顯示引導(dǎo)層端盆,如果不想馬上顯示可以使用build方法返回一個(gè)Controller對象,完成構(gòu)建费封。需要顯示得時(shí)候再次調(diào)用Controller對象的show方法進(jìn)行顯示爱谁。