??ViewPager2是Google爸爸在幾個(gè)月前推出來的新控件,此控件的目的就是為了替代傳統(tǒng)的ViewPager控件。至于為什么要淘汰ViewPager,我想就不用解釋這...
??ViewPager2是Google爸爸在幾個(gè)月前推出來的新控件,此控件的目的就是為了替代傳統(tǒng)的ViewPager控件。至于為什么要淘汰ViewPager,我想就不用解釋這...
概述 widgets體系結(jié)構(gòu)是學(xué)習(xí)Flutter中第一個(gè)重難點(diǎn)。本文不想去闡述widges的體系結(jié)構(gòu),因?yàn)樘^于理論。主要是想通過理論加實(shí)踐的方式讓讀者明白以下幾點(diǎn) 從理論層...
專欄第一篇先給出Flutter路線圖,后面我會(huì)隨著該路線圖一步步更新技術(shù)文章 我計(jì)劃先從Dart開始寫起然后過渡到Flutter。下面列一些幾個(gè)keys 在語(yǔ)法層面,主要對(duì)D...
圖解: 需要經(jīng)歷兩次標(biāo)記,對(duì)于強(qiáng)引用來說,第一次標(biāo)記就是將不可達(dá)對(duì)象放入pendingQueue里面,第二次標(biāo)記就直接死亡了。 finalize方法的作用:GC單純的只對(duì)ja...
前言 Bitmap 的內(nèi)存分配分外兩塊:Java 堆和native 堆。我們都知道 JVM 有垃圾回收機(jī)制,那么當(dāng) Bitmap的Java對(duì)象GC之后,對(duì)應(yīng)的 native ...
另外一個(gè)條件是,item的size要大于5,因?yàn)榫彺鎟ecycleview是等于5的
RecyclerView notifyDataSetChanged 導(dǎo)致圖片閃爍的真兇目前,在項(xiàng)目中一些主要頁(yè)面(如圖1 首頁(yè),采用ViewPager+TabLayout ,已實(shí)現(xiàn)數(shù)據(jù)懶加載)都會(huì)緩存第一頁(yè)數(shù)據(jù)(網(wǎng)絡(luò))存DB,下次進(jìn)來時(shí)會(huì)先請(qǐng)求DB數(shù)據(jù),...
如果不寫stablesId, 使用notifyDataSetChanged, Recyclerview 緩存會(huì)走removeView和addView的邏輯,但是如果在addView過程中只onlayout調(diào)用一次不會(huì)閃,兩次及以上就會(huì)閃
RecyclerView notifyDataSetChanged 導(dǎo)致圖片閃爍的真兇目前,在項(xiàng)目中一些主要頁(yè)面(如圖1 首頁(yè),采用ViewPager+TabLayout ,已實(shí)現(xiàn)數(shù)據(jù)懶加載)都會(huì)緩存第一頁(yè)數(shù)據(jù)(網(wǎng)絡(luò))存DB,下次進(jìn)來時(shí)會(huì)先請(qǐng)求DB數(shù)據(jù),...
目前,在項(xiàng)目中一些主要頁(yè)面(如圖1 首頁(yè),采用ViewPager+TabLayout ,已實(shí)現(xiàn)數(shù)據(jù)懶加載)都會(huì)緩存第一頁(yè)數(shù)據(jù)(網(wǎng)絡(luò))存DB,下次進(jìn)來時(shí)會(huì)先請(qǐng)求DB數(shù)據(jù),...
如上圖,我們其實(shí)可以從連接或者綁定的角度(連接或者綁定的意思就是兩個(gè)對(duì)象互相持有引用),即一個(gè)根activity的啟動(dòng)過程其實(shí)就是App進(jìn)程與AMS的連接與綁定,而現(xiàn)在的已知...
前言 Android事件分發(fā)機(jī)制是Android開發(fā)者必須了解的基礎(chǔ) 網(wǎng)上有大量關(guān)于Android事件分發(fā)機(jī)制的文章,但存在一些問題:內(nèi)容不全、思路不清晰、無源碼分析、簡(jiǎn)單問...
前言 java和kotlin原生的異常處理機(jī)制都比較簡(jiǎn)單,用try和catch的組合能夠解決很多問題,但是在實(shí)際生產(chǎn)環(huán)境中,有許多復(fù)雜的工作流邏輯,為了保證程序的魯棒性,必須...
任何對(duì)象都有生命周期,協(xié)程也不例外,其生命周期很簡(jiǎn)單啟動(dòng)->運(yùn)行->結(jié)束。而每個(gè)生命周期的狀態(tài)轉(zhuǎn)換都是需要觸發(fā)條件的,比如啟動(dòng)->運(yùn)行,需要協(xié)程構(gòu)建器launch{},運(yùn)行期...
調(diào)度 調(diào)度者應(yīng)該做什么(代碼如何寫) 啟動(dòng)任務(wù)會(huì)議(協(xié)程構(gòu)建) 復(fù)雜任務(wù)如何分配(線程池分配) 如何更快的解決問題(并發(fā),異步) 調(diào)度者需要收到問題反饋(異常處理) 調(diào)度這需...
最后 有解決oppo和vivo這個(gè)問題么,我后臺(tái)報(bào)這個(gè)錯(cuò)全都是這兩個(gè)機(jī)型
android.app.RemoteServiceException 的神坑異常最近終于有時(shí)間來整理一下代碼 修修bug 然后發(fā)現(xiàn)有一樣這樣的問題,占據(jù)了差不多10%的安卓用戶,以vivo、OPPO 、榮耀、華為入門機(jī)居多。我手上4臺(tái)機(jī)器怎么都復(fù)現(xiàn)不出來...
開篇前言 kotlin的協(xié)程在初學(xué)者看來是一個(gè)很神奇的東西,居然能做到用同步的代碼塊實(shí)現(xiàn)異步的調(diào)用,其實(shí)深入了解你會(huì)發(fā)現(xiàn)kotlin協(xié)程本質(zhì)上是通過函數(shù)式編程的風(fēng)格對(duì)Java...
github:https://github.com/zhouyueyuedsf/easyintern 介紹 easyIntern是一款基于idea IDE的國(guó)際化插件,基于產(chǎn)...
真的煩 我都碰見這種三次了
org.gradle.api.internal.tasks.compile.CompilationFailedException: Compilation failed; see the com...最近在弄項(xiàng)目于組件化的時(shí)候,拆分代碼的時(shí)候。遇到編譯不通過的問題,調(diào)試控制臺(tái)也沒有輸出具體報(bào)錯(cuò)地方。頭疼欲裂的找了半天,終于發(fā)現(xiàn)了一個(gè)端倪。首先,項(xiàng)目采用 MVVM模式開發(fā)。...
koltin中沒有受檢異常,只有運(yùn)行時(shí)異常。 上訴代碼在kotlin中是不會(huì)有強(qiáng)制性提醒異常檢查的,但寫代碼的時(shí)候你需要去發(fā)現(xiàn),捕獲后提醒給使用者這塊代碼發(fā)生了怎樣的錯(cuò)誤。比...