首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Kotlin成了Google亲儿子,现在赶紧来学学

那么,我们该如何在Android中应用这门新语言呢?今天这篇文章带你学习使用Kotlin开发Android应用,并对比我们传统语言Java,让你真真切切感受到他美和优雅。...有时候写是不是想吐,可能有些人说现在不是有一些注解库,butterknife,当我们使用注解时可以不用findViewById了,使用方式如下 ?...需要注意是,当我们想这样使用时候(不用findViewById,直接使用xml控件我们需要在gradle加入apply plugin: 'kotlin-android-extensions'),需要加入下面一句代码...4 Anko Layout 通常我们使用xml文件写我们布局,但是他有一些缺点如不是类型安全,不是空安全,解析xml文件消耗更多CPU和电量等等。...而Anko Layout可以使用DSL动态创建我们UI,并且它比我们使用Java动态创建布局方便很多主要是更简洁,它和拥有xml创建布局层级关系,能让我们更容易阅读。 ?

1.4K40
您找到你想要的搜索结果了吗?
是的
没有找到

使用Anko Layouts来开发Android ( 翻译)

因此这里翻译了一下Anko这个库布局部分。 为什么需要Anko Layouts 默认情况下,Android里UI是用XML来写。...它有几个不方便点: 不是类型安全 不是空安全 它强迫你在每个布局中写几乎一样代码 XML需要解析,这会浪费CPU和电池 最重要是不能代码复用 当然你可以使用动态代码来生成UI,但是一般来说很难...name: EditText = with(ankoContext) { editText { hint = "Name" } } AnkoComponent 尽管你可以在创建任何额外类情况下使用...,Anko在这种情况下会很有帮助。...XML到DSl转换器 这个插件也支持XML布局转换成Anko布局代码。打开XML文件选择 Code -> Convert to Anko Layouts DSL。可以同时转换多个XML布局文件。

2K70

干货 | 实现一个属于你“语言”-携程Kotlin DSL开发与实践

DSL:在主程序设计语言之外,用一种单独语言表示领域专有语言。可以是定制语法,或者遵循另外一种语法,XML、JSON。...在写Android布局时,我们都习惯性使用XML进行编写,但是可以考虑丢下冗长XML写法,尝试使用Anko Layout来实现。...XML写法: Anko Layout写法: 实际上前文提到过,XML本质上也是一种DSL,但是明显使用Anko Layout风格更加简单、也更加灵活。...Anko Layout由于是直接在kt文件中编写控件,那么它相对于xml来说,还有一个优势,即:减少了XML格式解析过程,从而实现CPU资源和电量节省。 XML执行流程: ?...2.4、创建一个自己DSL Kotlin DSl优势这么多,那么如何自定义一个DSL?

1.6K10

Kotlin 使用 Anko 构建布局那些事

毕竟以往布局都是要从 XML 中解析出来,然后再到 LayoutInfalter 里面通过 Constructor.newInstance 反射创建出来。...而 Anko 则是直接创建 View,用代码构建布局,省去了解析 XML 时间。 添加依赖 Anko Github 仓库是:https://github.com/Kotlin/anko。...创建简单布局 使用 Anko 创建布局很简单: ? 效果如下: ? 在 relativeLayout 代码块里我们构建了当前界面,并把它应用到了 Activity 中。...就是这样简单写法完成了界面布局,如同写 xml 文件一样,只要在父容器里面按照排列写好子控件参数和位置就好。 多实践几次就可以熟练这种写法,通过 Anko创建一个登陆界面: ?...在 XML 中能够设置控件属性更多,更精确控制布局状态,而 Anko 在构建简单界面的时候才显得快速、便捷。

98730

DSL In Action

,它好在用DSL方式来描述View,而缺点在于无法即时预览,在这方面导致Anko DSL开发效率不及XML传统方式。...经过大家一些踩坑,以及开发上试用,一致表示,Anko Layouts无法用在成熟项目之中,还是老老实实用XML吧… Anko LayoutsDSL设计那么棒… 就要这么放弃了吗 大家眼里Anko...怎么把Anko灵活用起来 简单回顾一下上面一节内容: 如果我们拥有一个ViewGroup或者拥有一个Context,就可以用来创建View 因此Anko用法远要比你想象中灵活 -> 可以拿到Context.../ViewGroup地方就可以使用Anko,而Anko作用也就是简化初始化View + AddView流程。...当然Anko因为避免了反射,提高了大量性能。 DSL和XML并不是冲突,DSL用于解决布局中细碎和动态部分,而XML用于单页布局,复杂布局。

1K20

Kotlin学习日志(一)TextView、Button、Toast使用

在Android Studio 中使用Kotlin编写TextView、Button、Toast 介绍的话我就不说了,可以看我第一篇关于Kotlin文章,讲了为什么要用Kotlin原因,进入正题,...我们现在已经重新创建了一个Kotlin项目,我在activity_main.xml文件中放了一个id为tv_helloTextView和一个id为btn_testButton, 然后在MainActivity.kt...中头部导入 贴一下布局文件activity_main.xml代码 <?...;toast("小提示:您点了一下") } 该说都说完了,我再介绍一个库:Anko库 简介:Anko使用Kotlin语言编写一个Android增强库,它用于简化Android开发时Kotlin...为了正常使用toast和longToast,我们需要在项目的build.gradle,在buildscript节点中补充下面一行代码, ext.anko_version = '0.9'//指定Anko版本

1.3K20

Activity 活动跳转(Java&Kotlin)

然后在MainActivity中导入 import org.jetbrains.anko.startActivity 然后就可以直接使用了。...getString("name") ③ 跳转时指定启动模式 在代码中动态指定页面的启动模式,因为在AndroidManifest.xml中对每个Activity只能指定唯一启动模式,如果想在不同时候对同一个...该值等同于launchMode=“singleTop” Intent.FLAG_ACTIVITY_CLEAR_TOP 当栈顶存在待跳转Activity实例时,重新创建一个新实例,并将原实例上方所有实例加以清楚...Anko库扩展出来intentFor函数简化启动标志设置方式,列,启动标志FLAG_ACTIVITY_NEW_TASK 对应Anko写法如下: startActivity(intent.newTask...()) 短小精悍 来看一下所有的Java方法对应Anko写法 Intent类启动标志 Anko标志设置函数 FLAG_ACTIVITY_NEW_TASK newTask() FLAG_ACTIVITY_SINGLE_TOP

1.7K30

Kotlin 使用DSL构建语法结构 看这一篇就够了~

使用DSL又可以实现怎么样功能呢?...Anko插件 最后我们来简单介绍下DSL在Kotlin中一个框架AnkoAnko用Kotlin DSL 写Android插件,Anko主要作用是替代以前用XML方式来生成UI布局。...大家都知道,Android界面是通过XML来进行布局,一个应用中通常有多个布局,当程序运行时,XML被转化为Java代码,这里要划重点,即使不是在Java中写代码,最终还是会转化为Java代码,这就会导致程序很耗费资源...由于Anko是直接通过Java代码来编写布局文件,不用进行转化,因此使用Anko编写Android界面的布局会更加简单、快捷。...关于Anko插件如何使用,就不讲解了,感兴趣可直接到Github上了解:https://github.com/Kotlin/anko 写在最后 DSL使用场景远远不止这些,其实前提就是使用好高阶函数

1.5K20

要再见了吗,Kotlin Android Extension

,降低标准事儿我们是绝不会做,Kotlin 官方这么多年都没有解决这个问题,快出来挨打 (╬ ̄皿 ̄)=○#( ̄#)3 ̄) 。...这个问题从现有的 KAE 思路上来看,确实不太好解决,不过从多年实践来看,这也许都算不上是一个问题,至少我用了快 5 年 KAE,只有偶尔几次写错 id 以外,多数情况下不会出现此类问题。...为了说明问题,我们创建两个完全相同 layout,分别命名为 view_tips.xml 和 view_warning.xml,里面只是简单包含一个 id 为 textView TextView...在这里提 Anko 到不是为了嘲讽,Anko 虽然离开了我们,可 Anko 所倡导 DSL 布局精神却留了下来,也就是 Jetpack 当中仍然处于 Alpha 状态(怎么都是 Alpha,难道这么久了还不配有个...小结 KAE 本质上就是通过编译器生成字节码方式为 Activity、Fragment、View 提供了以 xml 布局中 id 为名合成属性,从而简化使用 findViewById 来实现 View

1.7K40

Android入门教程 | res资源目录简介与shape绘制和使用

menu/: 用于定义应用菜单(选项菜单、上下文菜单或子菜单) XML 文件。 raw/:需以原始形式保存任意文件。...例如,对于可在此目录中创建资源,下面给出了相应文件名约定: arrays.xml:资源数组(类型数组)。 colors.xml:颜色值。 dimens.xml:尺寸值。...各种 XML 配置文件(可搜索配置)都必须保存在此处。 font/:带有扩展名字体文件( .ttf、.otf 或 .ttc),或包含 元素 XML 文件。...如果要求圆角背景,或是渐变色背景,我们该如何实现呢? 一种办法是制作相应美术素材,也就是切图。另一种办法是使用xml格式资源文件。 本文要介绍是shape。...corners标签代表圆角。如果设置,则默认为直角。这里我们设定圆角半径为6dp。 gradient表示渐变色。分别可以设置起始,中间和结束颜色值。

1.4K20

微软邮箱设置smtp_邮件服务器怎么设置

SMTP 服务器必须配置为允许匿名发件人发送电子邮件,或者你必须之前已创建一个帐户来用作警报电子邮件帐户。...创建警报,然后执行将触发警报操作。 自定义邮件警报格式 您可以自定义团队成员订阅电子邮件通知或警报格式。 当工作项、代码审阅、源代码管理文件和生成发生变化时,将发送这些通知。...XML 编辑器( Visual Studio)更改任何转换文件。...纯文本电子邮件 事件服务使用 .xsl 和 plaintextXsl 文件将事件 XML 数据转换为电子邮件。...本站仅提供信息存储空间服务,拥有所有权,承担相关法律责任。发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

7.6K40
领券