Dart是一個(gè)在單線程中運(yùn)行的程序,這意味著:如果程序在執(zhí)行中遇到一個(gè)需要長(zhǎng)時(shí)間的執(zhí)行的操作,程序?qū)?huì)被凍結(jié)。為了避免造成程序的凍結(jié),可以使用異步操作使程序在等待一個(gè)耗時(shí)操作...
Dart是一個(gè)在單線程中運(yùn)行的程序,這意味著:如果程序在執(zhí)行中遇到一個(gè)需要長(zhǎng)時(shí)間的執(zhí)行的操作,程序?qū)?huì)被凍結(jié)。為了避免造成程序的凍結(jié),可以使用異步操作使程序在等待一個(gè)耗時(shí)操作...
開(kāi)篇 Flutter中頁(yè)面的渲染渲染離不開(kāi)三個(gè)重要的元素:Widget、Element、RenderObject。是一個(gè)從Widget到Element再到RenderObje...
定義和用法 本文只對(duì)InheritedWidget進(jìn)行分析,需要讀者具備一些基礎(chǔ)知識(shí),包括但不限于: Flutter的基本知識(shí); Widget、Element的關(guān)系 一個(gè)可以...
ARouter There is no route match the path [/xxx/xxx], in group [xxx][ ] 最近項(xiàng)目里引入了Kotlin,保...
Java并發(fā)系列番外篇——同步機(jī)制(三) 姊妹篇《Java同步機(jī)制之synchronized》姊妹篇《Java同步機(jī)制之volatile》 指兩個(gè)或兩個(gè)以上的進(jìn)程在執(zhí)行過(guò)程中...
Java并發(fā)系列番外篇——同步機(jī)制(二) Java提供了一種稍弱的同步機(jī)制,即volatile變量,用來(lái)確保將更新的操作通知到其他線程。 姊妹篇《Java同步機(jī)制之synch...
前言 在最近的項(xiàng)目中,有這樣一個(gè)需求:在RecyclerView通過(guò)ID查詢到指定Item,然后滾動(dòng)視圖到指定Item,并對(duì)視進(jìn)行呼吸燈閃爍顯示。一種快速查詢定位的需求。首選...
Java并發(fā)系列番外篇——同步機(jī)制(一) 隱式鎖,又稱線程同步synchronized。保證在同一時(shí)刻最多只有一個(gè)線程執(zhí)行該段代碼 前言 在上篇文章《線程安全性》中,提到了J...
前言 Dart是一個(gè)真正的面向?qū)ο笳Z(yǔ)言,方法也是對(duì)象并且具有一種類型Function。 這意味著,方法可以賦值給變量,也可以當(dāng)做其他方法的參數(shù)。 也可以把Dart類的實(shí)例當(dāng)做...
前言 在構(gòu)建并發(fā)程序時(shí),必須正確的使用線程和鎖。編寫線程安全的代碼的核心在于要對(duì)狀態(tài)訪問(wèn)操作進(jìn)行管理,特別是對(duì)共享和可變狀態(tài)的訪問(wèn)。共享:變量可以由多個(gè)線程同時(shí)訪問(wèn)可變:變量...
RxDart 今年年初開(kāi)始嘗試使用Flutter開(kāi)發(fā)android APP,期間遇到了不少的坑,但總算是有驚無(wú)險(xiǎn)。而在做Android原生開(kāi)發(fā)時(shí),RxAndroid讓代碼爽到...
前言 RxJava不僅提供了大量的操作,例如map、flatMap(相關(guān)博客),還支持自定義操作符。官方文檔給出了自定義操作符的相關(guān)建議:如果操作符是用于Observable...
前言: RxJava中提供了大量的操作符,這大大提高了了我們的開(kāi)發(fā)效率。其中最基本的兩個(gè)變換操作符就是map和flatMap。而其他變換操作符的原理基本與map類似。 map...
三者的區(qū)別 先說(shuō)三個(gè)方法的區(qū)別: invalidate只會(huì)調(diào)onDraw方法且必須在UI線程中調(diào)用 postInvalidate只會(huì)調(diào)onDraw方法,可以再UI線程中回調(diào) ...
通過(guò)下標(biāo)來(lái)獲取和設(shè)置元素是處理集合最常見(jiàn)的操作之一,這篇文章就來(lái)學(xué)習(xí)一下kotlin中集合區(qū)間的確定。 通過(guò)下表來(lái)訪問(wèn)元素 在kotlin中,可以使用類似java中的方式來(lái)訪...
前言 良好的編程風(fēng)格的主要原則之一是避免代碼中的任何重復(fù)。如果你用過(guò)Java(8之前)編寫代碼,很可能已經(jīng)養(yǎng)成了什么東西都自己去實(shí)現(xiàn)的習(xí)慣。在Kotlin中,我們必須糾正這一...
Platform Channel簡(jiǎn)介 Flutter引入Platform Channel機(jī)制來(lái)支持不同平臺(tái)的API調(diào)用。在Flutter中,提供了三種Platform Cha...
Flutter垂直和水平布局 所謂線性布局,即指沿水平或垂直方向排布子組件。Flutter中通過(guò)Row和Column來(lái)實(shí)現(xiàn)線性布局,類似于Android中的LinearLay...
前言 通過(guò)閱讀lambda表達(dá)式與Kotlin高階函數(shù),你應(yīng)該了解到在kotlin中傳遞lambda作為函數(shù)參數(shù)的語(yǔ)法與普通的表達(dá)式很相似。這篇文章則帶你了解lambda的運(yùn)...
沒(méi)錯(cuò),我是這篇文章的作者,我現(xiàn)在已經(jīng)開(kāi)始否定文中的價(jià)值觀了——沒(méi)錯(cuò),我開(kāi)始否定兩年前的我了。諷刺!
對(duì)人生意義與生命真諦的探索——這不是悲觀消極的嘆息,而是好好生活的號(hào)角!人生的意義究竟是什么?無(wú)數(shù)人終其一生也找不到答案。2012年,邁入大學(xué)校門,看著雄偉的圖書(shū)館,我在心里默默的想著“我要在圖書(shū)館里...