学习
实践
活动
专区
工具
TVP
写文章

Android UI开发神兵利器—Kotlin Anko

Anko的简介

引用Anko的GitHub主页上面的解释:

Anko is a Kotlin 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库,它可以使您的代码清晰、易读,并且它可以让您忘记粗糙的Java Android SDK。

Anko目前主要用于:布局、数据库和协程三个方面。

接下来我们主要交流的是Layout方面的知识。

引入Anko和遇到的问题

添加Anko的依赖:

这时发现有爆红的地方了:提示v7包和v4包版本不一致,这就很纳闷了,我都没用私自添加删除v4包,怎么会出现问题呢,接着我就去libraries找原因了,原来是Anko也引入了v4的包,而且版本是27.1.1,我新建工程的编译版本是28.0.0,小伙伴们要注意了。

解决:排除anko包中的v4包

使用Anko,从四个点介绍下如何使用Anko以及遇到的问题

① 实现一个简单的登录界面

既然是使用Anko,那么当然是要抛弃xml布局文件咯,也就不用写来绑定布局文件了,可以直接在方法里面调用我们自己写的类的绑定就行了,这种写法是比较推荐的一种,还有一种就是直接把写在里面,但是不推荐,这样会造成类的代码冗余。下面来看看如何实现这么一个简单的布局:

这里我们用的都是大家常见的一些布局和控件,就是的。

控件和布局的一些属性需要注意下,比如里面的对应的就是xml中的,如果出现在闭包中的指的就是属性了。千万要分清。

的其实是有返回值的

返回的是一个对象,这里我使用来实现自动返回。你也可以使用或者等作用域函数。你可以从对象中拿到、和三个对象,都是很重要的属性。

效果如下:

login

② 使用Anko实现RV列表

要想使用你必须添加新的依赖:

首先写出+布局:

所有的属性:、都可以直接在闭包里面设置。

接下来看看适配器中的如何用Anko实现:

其实这里主要使用到的就是对象的属性,将的和绑定在一起,这样我们的返回的同时也把生成并返回了,就可以在的方法中拿到对象。

效果如下:

rv

③ 复用

在日常开发中我们会遇到这样的情形,类似于通用的设置界面,所有的条目都是很类似的,只不过文字或者icon不一样,如果我们用来实现,难免觉得条目太少,不划算,但是每个条目都是自己写一遍,又会觉得太繁琐,这时候Anko就会帮助我们简化很大的代码,下面一起来看看:

首先定义一个方法,方法包含了的高度、上下外边距、头部icon、头部文字、尾部icon和7个参数。方法的内部实现采用Anko的DSL(领域特定语言)语言实现。其中参数是我们前面提到的的父类,它是这个方法的主要参数,因为在Anko实现的一系列都是的扩展函数。想复用的话,直接调用这个方法就行了,ForExample:

效果如下:

settin

④ 在Anko中使用自定义View

有一天产品让你画一个比较奇特的圆弧,这个圆弧你必须用自定义View实现,在你实现了之后,你发现Anko中却不能使用,并没有生成自定义View的方法,这时你傻眼了,辛辛苦苦写的View在Anko中用不了。别急,下面我们一起来学习下如何使用:

第一步:自定义一个圆弧,这里用很简单的一个例子

定义属性:这些属性都可以在Anko的闭包中直接赋值

画和:简单的实现下

第二步:实现扩展函数,扩展函数主要的还是靠返回的来实现,我们看到的中的就是对象。这样就直接调用了自定义View的构造函数。

第三步:调用,其实和、没什么区别,看你自定义中的参数而已

效果:

custome

Anko中部分使用就介绍到这,有感兴趣的还希望可以去wiki文档仔细阅读,谢谢

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190106G138QE00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

关注

腾讯云开发者公众号
10元无门槛代金券
洞察腾讯核心技术
剖析业界实践案例
腾讯云开发者公众号二维码

扫码关注腾讯云开发者

领取腾讯云代金券