作家
登录

用Kotlin优雅地开发Android应用

作者: 来源: 2017-05-22 14:22:10 阅读 我要评论

on the kotlinx.coroutines library  
  1. alert ("我是Dialog"){ 
  2.  
  3. yesButton { toast("yes")} 
  4.  
  5. noButton { toast("no")} 
  6.  
  7. }.show()  

那么接下来,我们就经由过程代率攀来懂得Kotlin说话开辟Android的优势地点。

再也不消findViewById

做过Android开辟的人都知道,构造文件写的多了,findViewById也是一个很大年夜的工作量,并且还要先声明变量,在findViewById然后再强转成我们的控件,应用方法一般如下

确切是如许,应用注解后确切给我们少了一些工作量,不过这依然没有最简单化,最简单的就是我们可以直接给id为user的控件直接赋值,或许你会感到这有点弗成思议。不过Kotlin确切做到了。我们可以直接如许写

有时刻写的是不是想吐,可能有些人说如今不是有一些注解的看维如butterknife,当我们应用注解时可以不消findViewById了,应用方法如下

  1. @BindView(R.id.user
  2.  
  3. TextView username; 
  4.  
  5. username.setText("我是一个TextView");  
  1. user.text="我是一个TextView" 

看到这你是不是有一种相见恨晚的感到,太Tama的简洁了。user就是我们构造文件声明的id,.text就想当与setText()给,在Kotlin说话中,我们看不到了像Java中的set/get办法了。须要留意的是,当我们想如许应用的时刻(不消findViewById,直接应用xml控件我们须要在gradle参加apply plugin: ‘kotlin-android-extensions’),须要参加下面一句代码

  1. //activity_login就是我们的构造 
  2.  
  3. import kotlinx.android.synthetic.main.activity_login.*  

Anko Layout

平日我们应用xml文件写我们的构造,然则他有一些缺点如不是类型安然,不是空安然,解析xml文件消费更多的CPU和电量等等。而Anko Layout可以应用DSL动态创建我们的UI,并且它比我们应用Java动态创建构造便利很多主如果更简洁,它和拥有xml创建构造的层级关系,能让我们更轻易浏览。

  1. verticalLayout { 
  2.  
  3.             val textView=textView("我是一个TextView"
  4.  
  5.             val name = editText("EditText"
  6.  
  7.             button("Button") { 
  8.  
  9.                 onClick { toast("${name.text}!") } 
  10.  
  11.             } 
  12.  
  13.         }  

我们在OnCreate办法中可以去掉落setContentView,然后参加膳绫擎代码就可以显示如下图的效不雅,即一个垂直的线性构造中,放了一个TextView,一个EditText,和一个Button。并且Button中有一个点击事宜,当点槐厩?EditText的内容

膳绫擎的代码是不是很简单易懂,当然,默认的控件并不克不及知足我们的需求,例如我们会更改字体的色彩及大年夜小,会设置宽度和高度,会设置margin,padding值,那么该若何实施呢,当然也很简单,因为它的逻辑和xml书写构造是一个套路。例如以下实现

我想我不须要解释膳绫擎的代码,你就应当看得出控件实施的效不雅。因为它的属性和我们在xml设置属性的名字对应的。

在膳绫擎创建UI过程中,我们直接把创建UI的代码写在onCreate办法中了,当然,还有一种写法。我们创建一个内部类实施AnkoComponent接口,并重写createView办法,该办法返回一个View,也就是我们创建的构造。修改如下


  推荐阅读

  不忘初心 东芝依然重视中国市场并发力企业级存储市场

【51CTO.com原创稿件】这几天勒索病毒实在火了一把。东芝存储企业级硬盘营销清晨长藤森将文师长教师提到,将来>>>详细阅读


本文标题:用Kotlin优雅地开发Android应用

地址:http://www.17bianji.com/lsqh/35346.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)