(Android)輕松定制非入侵式加載頁面組件

聲明:本篇文章的目的是讓大家可以自己動手實現(xiàn)一個組件弥虐,本人寫的這個加載頁面組件也特意起名叫EasyLoading,所以不會考慮各種情況话浇。因為不同的APP有各種不同的風(fēng)格,界面布局也五花八門闹究,所以還是自己手動擼一個組件吧幔崖。

非入侵式組件

非入侵式組件是什么意思呢?簡單的說就是動態(tài)加載由代碼編譯生成的組件。如果是把組件寫在xml布局文件中的話就可以說是入侵式組件赏寇,因為它入侵了我們原來的布局吉嫩。哥的理解就是那么粗暴!

使用背景

每當(dāng)跳轉(zhuǎn)到一個新的頁面的時候往往會請求數(shù)據(jù)接口,很多時候我們的頁面需要通過請求得到的數(shù)據(jù)來填充嗅定。在拿到數(shù)據(jù)前頁面就會有個尷尬期自娩,這時就需要用一個組件把頁面的內(nèi)容區(qū)域遮蓋住,根據(jù)各種情況給用戶一個反饋渠退。這就是加載頁面的作用忙迁。

優(yōu)雅的使用加載頁面

我覺得每一個移動端的程序員都會做過這件事,就是寫一個xml加載布局碎乃,通過<include>標(biāo)簽使用加載布局把內(nèi)容區(qū)域遮蓋姊扔,數(shù)據(jù)加載成功的時候就把加載布局隱藏,失敗后就通過代碼修改加載布局里面控件的屬性來提示用戶梅誓。每寫一個頁面就重復(fù)一次這樣的工作恰梢,等到不勝其煩的時候就要思考怎么偷懶了。比較優(yōu)雅的方式就是通過代碼動態(tài)生成一個加載頁面組件梗掰,在需要用到的頁面把它添加到我們的根布局中嵌言,然后根據(jù)加載中、加載成功及穗、加載失敗摧茴、數(shù)據(jù)為空的情況調(diào)用組件里對應(yīng)的方法,這是面向?qū)ο蟮幕舅枷胗堤场Uf了那么多蓬蝶,上效果圖:

GIF.gif

再看看我們布局文件的xml代碼

layout.png

這樣就可以很容易的理解什么是非入侵式組件了,新增的加載布局對我們原來的布局代碼完全沒有影響猜惋。

組件剖析

先來看一下超級簡單的結(jié)構(gòu)


結(jié)構(gòu).png

EasyLoading類丸氛,主要的作用是實例化一個加載布局,然后將加載布局添加到頁面的根布局中著摔,整個類不到100行代碼

EasyLoading.png

EasyLoadingView類缓窜,這是個抽象的View類,整個類不到50行代碼谍咆。抽象了加載布局的主要實現(xiàn)方法禾锤,同學(xué)們可以通過實現(xiàn)這個類來自定義一個加載布局(可以參照LoadingView)然后在EasyLoading類中替換原來的加載布局。本人的目的就是鼓勵大家自己動手去寫一個和自己項目或自己的習(xí)慣高度契合的組件摹察。懶的同學(xué)直接用應(yīng)該問題也不大恩掷,替換一下圖片就可以了,加載中的圖片還是建議使用動圖供嚎,這里我使用了幀動畫實現(xiàn)黄娘。

EasyLoadingView.png

LoadingView類是EasyLoadingView的實現(xiàn)類200行不到的代碼量峭状,主要通過代碼生成了加載中提示圖片、提示文字逼争、重載按鈕优床,就不貼代碼了。

EasyReloadInterface類一個簡單的回調(diào)接口誓焦,用于響應(yīng)重新加載按鈕點擊事件

interface.png

可以看到代碼量是極少了胆敞,因為本人是個密集恐懼癥患者,看到密密麻麻的代碼就頭皮發(fā)麻杂伟,所以盡量寫得簡單移层,代碼簡單了也相信大家都能看得懂。再次強烈建議自己動手?jǐn)]一個組件稿壁,養(yǎng)成一個好習(xí)慣幽钢,把需要重復(fù)工作的環(huán)節(jié)逐個消滅,專注業(yè)務(wù)傅是,避免做重復(fù)工作匪燕。

這是github代碼地址

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末喧笔,一起剝皮案震驚了整個濱河市帽驯,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌书闸,老刑警劉巖尼变,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異浆劲,居然都是意外死亡嫌术,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進(jìn)店門牌借,熙熙樓的掌柜王于貴愁眉苦臉地迎上來度气,“玉大人,你說我怎么就攤上這事膨报×准” “怎么了?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵现柠,是天一觀的道長院领。 經(jīng)常有香客問我,道長够吩,這世上最難降的妖魔是什么比然? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮周循,結(jié)果婚禮上谈秫,老公的妹妹穿的比我還像新娘扒寄。我一直安慰自己,他們只是感情好拟烫,可當(dāng)我...
    茶點故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著迄本,像睡著了一般硕淑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上嘉赎,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天置媳,我揣著相機與錄音,去河邊找鬼公条。 笑死拇囊,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的靶橱。 我是一名探鬼主播寥袭,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼关霸!你這毒婦竟也來了传黄?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤队寇,失蹤者是張志新(化名)和其女友劉穎膘掰,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體佳遣,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡识埋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了零渐。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片窒舟。...
    茶點故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖相恃,靈堂內(nèi)的尸體忽然破棺而出辜纲,到底是詐尸還是另有隱情,我是刑警寧澤拦耐,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布耕腾,位于F島的核電站,受9級特大地震影響杀糯,放射性物質(zhì)發(fā)生泄漏扫俺。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一固翰、第九天 我趴在偏房一處隱蔽的房頂上張望狼纬。 院中可真熱鬧羹呵,春花似錦、人聲如沸疗琉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽盈简。三九已至凑耻,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間柠贤,已是汗流浹背香浩。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留臼勉,地道東北人邻吭。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像宴霸,于是被迫代替她去往敵國和親囱晴。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,864評論 2 354

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