Kotlin Android扩展_视图绑定
来源:互联网 发布:专科 知乎 编辑:程序博客网 时间:2024/06/05 21:49
KotLin视图绑定
从Kotlin M11开始增加的扩展插件使得Android开发者更容易取得XML文件中定义的Views。你可能会觉得它很像ButterKnife,但使用起来更简单。
Kotlin Android扩展本质上是一个视图绑定,使得开发者在代码中通过id就可以使用XML文件中定义的Views。它将自动为Views创建属性值,而不用使用第三方注解框架或者findViewById函数。
要使用这个特性,首先需要安装插件“Kotlin Android Extension”,并在build.gradle文件的构建脚本依赖中增加一个新的classpath:
org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version
如果想在Activity中使用这个文件里面定义的Views,你只需要导入这个xml文件的synthetic属性值,如下所示:
import kotlinx.android.synthetic.<xml_name>.*
具体到我们的例子,则如下所示:
import kotlinx.android.synthetic.main.activity_main.*;
那么在真实的activity中的用法:
message.text = "Hello Kotlin!"
message为什么,如下布局文件activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"> <TextView android:id="@+id/message" android:text="@string/hello_world" android:layout_width="wrap_content" android:layout_height="wrap_content"/></RelativeLayout>
也就是说,通过id直接绑定了view,是不是比Android中第三方框架来得更爽!
例子源码
阅读全文
0 0
- Kotlin Android扩展_视图绑定
- Kotlin Android 绑定视图xml
- Kotlin Android 扩展
- android kotlin扩展函数
- Android扩展Kotlin
- 使用Kotlin开发Android应用(IV):自定义视图和Android扩展
- Kotlin Android 扩展(二)
- Kotlin编程之Kotlin Android Extensions(扩展插件)
- Kotlin-扩展
- kotlin-扩展
- Kotlin 扩展
- Kotlin 扩展
- Android基础知识_绑定Service
- Android 视图绑定实现代码优化
- Android视图绑定框架之ButterKnife
- Android@Kotlin(二) 界面构建与扩展方法
- Android@Kotlin(三)扩展变量与其它技巧
- Kotlin开发Android笔记6:Anko和扩展的函数
- 之江学院2017ACM校赛 Problem B: qwb与矩阵(记忆化搜索)
- C#线程(一、基本概念)
- 基本选择器、层次选择器
- 商城项目实战06:SSM框架整合之Dao层整合
- Android运行时异常:android.view.InflateException: Binary XML file line #354: Error inflating class inclu
- Kotlin Android扩展_视图绑定
- JSON数据结构
- android源码编译
- POJ 3259 Wormholes
- Ubuntu下编译实现PHP的c扩展
- 拥抱firewalld,但也别忘了iptables——下篇(firewalld详解)
- 商城项目实战07:SSM框架整合之Service层整合
- org.springframework.web.servlet.DispatcherServlet noHandlerFound
- LeetCode#59. Spiral Matrix II