Anko之Anko Layouts的使用(一)

  使用Kotlin进行android开发大势所趋,习惯了以前的findViewById或者使用注解的方式进行自动生成,虽然这样已经节省了很多的时间,不用写太多无趣重复的代码。但是自从Kotlin被google爸爸推广后,这种语言开发已经掀起了一波热潮,它的强大之处我这里不用多说,这里将要介绍的是Kotlin开发android必要的依赖,可以大大的减少代码量,使用更加方便。
    今天就来介绍一下Anko,主要内容是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开发更快更容易的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代码如下:

Anko之Anko Layouts的使用(一)_第1张图片
image.png

使用DSL的代码如下:
Anko之Anko Layouts的使用(一)_第2张图片
image.png

代码的简洁程度一看就明白了。如果不想用全用anko进行布局,也可以保留以前的xml文件,只需要这样写
Anko之Anko Layouts的使用(一)_第3张图片
image.png
不用繁琐的findViewById了。
如果你想使用到Activity, Fragment, FragmentActivity 或者任何想使用的地方。
引入anko包,在activity中展示:
Anko之Anko Layouts的使用(一)_第4张图片
image.png

没有调用setContentView方法进行加载布局。dip(30)将dip进行转换。
editText 的属性hint和TextSize直接进行设置。即使这样我们还能进行修改抽取。
利用AnkoComponent进行改变。
如下简单的写一个登录界面
Anko之Anko Layouts的使用(一)_第5张图片
image.png

其中还可以设置Button的主题
themedButton("Ok", theme = R.style.myTheme),设置LinearLayout的布局。
Anko之Anko Layouts的使用(一)_第6张图片
image.png

lparams参数就是设置布局参数。还有布局 relativeLayout { },
frameLayout { }, tabHost { }等
异步处理使用的是
doAsync {//子线程
UI { }//主线程更新UI
}
还有其他控件的简写
如下:dialog--->引入了js的写法(其实也不全是)
alert {
yesButton { }
noButton { }
}
seekBar:
Anko之Anko Layouts的使用(一)_第7张图片
image.png

这部分到此结束.......下部分未完待续。
感谢来源地址附上
https://github.com/Kotlin/anko/wiki/Anko-Layouts

你可能感兴趣的:(Anko之Anko Layouts的使用(一))