Anko之Anko Layouts的使用(一)

  使用Kotlin進行android開發(fā)大勢所趨,習慣了以前的findViewById或者使用注解的方式進行自動生成,雖然這樣已經(jīng)節(jié)省了很多的時間,不用寫太多無趣重復的代碼。但是自從Kotlin被google爸爸推廣后,這種語言開發(fā)已經(jīng)掀起了一波熱潮,它的強大之處我這里不用多說,這里將要介紹的是Kotlin開發(fā)android必要的依賴,可以大大的減少代碼量,使用更加方便。
    今天就來介紹一下Anko,主要內(nèi)容是Anko的使用,翻譯github上官方介紹英文文檔。https://github.com/Kotlin/anko   理解錯誤之處還望指出。
   Anko官方的定義:
         Anko is a [Kotlin](http://www.kotlinlang.org/) 
         library which makes Android application development faster and easier. It                     
         makes your code clean and easy to read, and lets you forget about rough 
         edges of the Android SDK for Java
  大概意思就是:anko是一個讓android開發(fā)更快更容易的kotlin依賴包。它讓你
  的代碼更干凈更容易閱讀,讓你忘記Android SDK的不足之處

依賴的注入:
modle的gradle中加入
compile "org.jetbrains.anko:anko:$anko_version"
在project中的buildscript中加入
ext.anko_version='0.10.4'
當然必須引入Kotlin的依賴
compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
在project中的buildscript中加入
ext.kotlin_version = '1.1.2-4'
在Android中的布局采用的是以xml的文件嵌入的,以這種方式存在一些隱患。
1,類型不安全
2,沒有空安全
3,編寫相同的代碼
4,解析xml的時候占用cpu時間和電池的電量
5,代碼不允許重用
雖然可以用java代碼進行編寫布局文件,但是代碼量大,而且比較抽象,比較丑。java代碼如下:

image.png

使用DSL的代碼如下:
image.png

代碼的簡潔程度一看就明白了。如果不想用全用anko進行布局,也可以保留以前的xml文件,只需要這樣寫
image.png
不用繁瑣的findViewById了。
如果你想使用到Activity, Fragment, FragmentActivity 或者任何想使用的地方。
引入anko包,在activity中展示:
image.png

沒有調用setContentView方法進行加載布局。dip(30)將dip進行轉換。
editText 的屬性hint和TextSize直接進行設置。即使這樣我們還能進行修改抽取。
利用AnkoComponent進行改變。
如下簡單的寫一個登錄界面
image.png

其中還可以設置Button的主題
themedButton("Ok", theme = R.style.myTheme),設置LinearLayout的布局。
image.png

lparams參數(shù)就是設置布局參數(shù)。還有布局 relativeLayout { },
frameLayout { }, tabHost { }等
異步處理使用的是
doAsync {//子線程
UI { }//主線程更新UI
}
還有其他控件的簡寫
如下:dialog--->引入了js的寫法(其實也不全是)
alert {
yesButton { }
noButton { }
}
seekBar:
image.png

這部分到此結束.......下部分未完待續(xù)。
感謝來源地址附上
https://github.com/Kotlin/anko/wiki/Anko-Layouts

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容