基于StatusLayout1.0的功能進(jìn)行了一次改進(jìn)和調(diào)整,更好去適應(yīng)業(yè)務(wù)場(chǎng)景減少工作,高自由定制不局限于Loading Error等布局,盡可能減少不必要的重復(fù)代碼設(shè)置以...
基于StatusLayout1.0的功能進(jìn)行了一次改進(jìn)和調(diào)整,更好去適應(yīng)業(yè)務(wù)場(chǎng)景減少工作,高自由定制不局限于Loading Error等布局,盡可能減少不必要的重復(fù)代碼設(shè)置以...
上個(gè)周末晚上看到了鴻洋大神的公眾號(hào)推送文章<<Jetpack重磅更新>>,于是乎點(diǎn)開(kāi)文章看了一下具體內(nèi)容,在翻閱的過(guò)程中發(fā)現(xiàn)Paging 3.0的信息,因?yàn)橐郧皩戇^(guò)舊版Pag...
在Android中,現(xiàn)在很多時(shí)候都會(huì)用SparseArray來(lái)代替HashMap存放數(shù)據(jù),但是有些情況是HashMap效率更高,至于兩者之間有什么區(qū)別,而又是什么導(dǎo)致了兩者的...
協(xié)程介紹 本質(zhì)上,協(xié)程像是輕量級(jí)的線程 在我們編程的過(guò)程中 難免會(huì)出現(xiàn)異步編程和一些回調(diào)函數(shù),這就很容易出現(xiàn)callback hell 回調(diào)地獄 ,也就是說(shuō)可能出現(xiàn)大量嵌套代...
StatusLayout : 一個(gè)超高自定義度又簡(jiǎn)單的頁(yè)面狀態(tài)管理庫(kù) 業(yè)務(wù)場(chǎng)景需求: 在日常開(kāi)發(fā)App的過(guò)程中,我們少不了對(duì)Activity/Fragment 等做一些不同...
自定義下劃線的方式是不行的
TabLayout 自定義下劃線一、需求 頁(yè)面頂部添加Tab條,類似微博首頁(yè)的關(guān)注和熱門兩個(gè)Tab,如下圖: 二、方案 三個(gè)實(shí)現(xiàn)要點(diǎn): TabLayout+FrameLayout 兩個(gè)Tab對(duì)應(yīng)兩個(gè)Frag...
解決方案的鏈接已經(jīng)失效了
Android TouchDelegate詳解及優(yōu)化Android 4.0規(guī)定的有效可觸摸的UI元素標(biāo)準(zhǔn)是48dp,這是一個(gè)用戶手指能準(zhǔn)確并且舒適觸摸的區(qū)域。 日常開(kāi)發(fā)中,如果我們想擴(kuò)大一個(gè)View的點(diǎn)擊區(qū)域,往往通過(guò)給Vie...
copy kotlin文檔沒(méi)什么意義
一篇文章理解Kotlin協(xié)程這篇文章大部分內(nèi)容來(lái)自:https://github.com/Kotlin/kotlinx.coroutines/blob/master/coroutines-guide.m...
進(jìn)程?;罘矫妫刈o(hù)進(jìn)程的做法是不靠譜的,google現(xiàn)在殺的是一個(gè)進(jìn)程組,而不是以前的單個(gè)進(jìn)程。所以不存在殺了其中一個(gè),另一個(gè)還存活的情況
Android優(yōu)化全面攻略一 :安裝包性能壓縮 一個(gè)字:刪!!刪不了就盡量小。 1.圖片壓縮 圖片:apk里面的資源圖片 壓縮圖片svg圖片:一些圖片的描述,犧牲CPU的計(jì)算能力的,節(jié)省空間。使用的原...
ObservableOn() 直接查看實(shí)現(xiàn),會(huì)發(fā)現(xiàn)onSubscribe()中做了一些判斷,比如82 104等幾行都是做了一些同步 異步 等的判斷,然后初始化Disposab...
幾個(gè)關(guān)鍵類以及接口 RealInterceptorChain Interceptor RealInterceptorChain RealInterceptorChain實(shí)現(xiàn)了...
訂閱 首先創(chuàng)建一個(gè)observer和observable 先看Observable的創(chuàng)建過(guò)程,create()只是把傳進(jìn)去ObservableOnSubscribe對(duì)象包裝了...
關(guān)鍵性幾個(gè)方法以及變量 dispatchLayoutStep1 dispatchLayoutStep2 dispatchLayoutStep3 ViewInfoStore V...
用SparseArray / ArrayMap 代替HashMap SparseArray: 如果key的類型已經(jīng)確定為int類型,那么使用SparseArray,因?yàn)樗苊?..
你好,我有兩點(diǎn)疑問(wèn),第一點(diǎn):在inflate之前就開(kāi)始網(wǎng)絡(luò)請(qǐng)求,那么假設(shè)網(wǎng)絡(luò)請(qǐng)求結(jié)果發(fā)射了,但是view還沒(méi)有加載好,這個(gè)時(shí)候是怎么處理的呢? 第二點(diǎn):livedata有一個(gè)特性是頁(yè)面onPause不活躍之后,數(shù)據(jù)發(fā)送會(huì)暫時(shí)停止,等到重新回到活躍狀態(tài)再補(bǔ)發(fā)最后一條,那么這種功能是否能夠?qū)崿F(xiàn)?畢竟如果這個(gè)頁(yè)面不可見(jiàn),也沒(méi)有必要做多余的操作
讓普通 Java 類自動(dòng)感知 Activity Lifecycle《億級(jí) Android 架構(gòu)》 地址:https://xiaozhuanlan.com/AndroidArch 背景 在 Android 開(kāi)發(fā)中,我們都很熟悉 Activit...
個(gè)人覺(jué)得文章里的例子舉得不是很恰當(dāng),最開(kāi)始的代碼里少了一個(gè)enable標(biāo)記去區(qū)分是否初始化成功,而后面的代碼相對(duì)于最開(kāi)始的代碼多了enable的驗(yàn)證,所以看起來(lái)后面的代碼解決了問(wèn)題,但是照l(shuí)ifecycle是對(duì)于生命周期的管理的概念來(lái)講,這個(gè)例子舉得不是特別好。 MyLocationListener 通過(guò)lifecycle感知了activity的生命周期,讓我們不用在activity的生命周期方法里處理很多代碼,并且讓一些原本沒(méi)有生命周期的類可以通過(guò)lifecycle去感知當(dāng)前容器的生命周期從而做出相對(duì)應(yīng)的處理。我想這才是lifecycle在開(kāi)發(fā)中的作用,你覺(jué)得呢?
理解Android Architecture Components系列之Lifecycle(三)有了整體的認(rèn)識(shí),就可以對(duì)之前沒(méi)有詳細(xì)介紹的類做一個(gè)深入的探究。首先來(lái)看看Lifecycle。 Handling Lifecycles android.arch.lifecyc...