kotlin学习笔记——Kotlin Android Extensions
2017-09-28 09:58
281 查看
Kotlin学习笔记系列:http://blog.csdn.net/column/details/16696.html
Kotlin Android Extensions是另外一个团队开发的,它是一个插件所以不需要依赖别的库。当前仅仅包含view的绑定,会自动创建很多属性让我们直接访问xml中的view,我们就不需要明确的去布局中找这些view了。
自动创建的属性的名字来源于view的id,所以我们取id的时候要十分小心。这些属性类型也是从xml中获取的,所以不必再做类型转换。
Kotlin Android Extensions具有缓存功能,避免每次使用属性都重新获取一次。但是缓存功能目前只在activity和fragment中有效,如果在扩展函数中则跳过缓存。
使用Kotlin Android Extensions
一、首先加入插件的依赖,在module中的build.gradle中(注意不是root下的):
二、import进代码中:
1、activity和fragment的Android Extensions
import kotlinx.android.synthetic.activity_main.*
以kotlinx.android.synthetic开头,activity_main是layout的名字(注意:新版本前面要加上main,既.main.activity_main.)。
当调用了setContentView之后就可以直接使用自动创建的view的属性了。
注意:如果在layout中使用include,那么必须将include的layout也import进来。
2、view的Android Extensions
有很多代码需要访问xml中的view,比如自定义view或者adapter。绑定一个view到另外一个view,这时需要import
如:
注意import进来的不是layout了,而是layout.view,这样就可以直接使用这个view的子view了。
三、直接在代码中使用
如:
activity_main.layout
MainActivity.java
可以看到直接使用recyclerview这个变量,不必在使用find代码,节省了大量的代码
Kotlin Android Extensions是另外一个团队开发的,它是一个插件所以不需要依赖别的库。当前仅仅包含view的绑定,会自动创建很多属性让我们直接访问xml中的view,我们就不需要明确的去布局中找这些view了。
自动创建的属性的名字来源于view的id,所以我们取id的时候要十分小心。这些属性类型也是从xml中获取的,所以不必再做类型转换。
Kotlin Android Extensions具有缓存功能,避免每次使用属性都重新获取一次。但是缓存功能目前只在activity和fragment中有效,如果在扩展函数中则跳过缓存。
使用Kotlin Android Extensions
一、首先加入插件的依赖,在module中的build.gradle中(注意不是root下的):
buildscript { repositories { jcenter() } dependencies { classpath 'org.jetbrains.kotlin:kotlin-android-extensions:1.1.2-4' } }
二、import进代码中:
1、activity和fragment的Android Extensions
import kotlinx.android.synthetic.activity_main.*
以kotlinx.android.synthetic开头,activity_main是layout的名字(注意:新版本前面要加上main,既.main.activity_main.)。
当调用了setContentView之后就可以直接使用自动创建的view的属性了。
注意:如果在layout中使用include,那么必须将include的layout也import进来。
2、view的Android Extensions
有很多代码需要访问xml中的view,比如自定义view或者adapter。绑定一个view到另外一个view,这时需要import
如:
import kotlinx.android.synthetic.main.item_view.view.* class RecyclerAdaper(var items: List<String>, var listener: (String) -> Unit) : RecyclerView.Adapter<RecyclerAdaper.ViewHolder>(){ override fun onBindViewHolder(holder: ViewHolder, position: Int) { holder.bind(items[position]) } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { return ViewHolder(View.inflate(parent.context, R.layout.item_view, null)) } override fun getItemCount(): Int { return items.size } class ViewHolder(view: View) : RecyclerView.ViewHolder(view){ fun bind(str: String){ itemView.nametext.text = str } } }
注意import进来的不是layout了,而是layout.view,这样就可以直接使用这个view的子view了。
三、直接在代码中使用
如:
activity_main.layout
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v7.widget.RecyclerView android:id="@+id/recyclerview" android:layout_width="match_parent" android:layout_height="match_parent"></android.support.v7.widget.RecyclerView> </RelativeLayout>
MainActivity.java
import kotlinx.android.synthetic.main.activity_main.* class MainActivity : Activity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) //var recyclerview = findViewById(R.id.recyclerview) as RecyclerView //var recyclerview: RecyclerView = find(R.id.recyclerview) recyclerview.layoutManager = LinearLayoutManager(this)
可以看到直接使用recyclerview这个变量,不必在使用find代码,节省了大量的代码
相关文章推荐
- kotlin android extensions使用方式
- Android KTX与Kotlin Android Extensions
- 使用Kotlin开发Android 扩展函数(Extensions)
- Kotlin学习之kotlin-android-extensions
- Kotlin Android Extensions: 与 findViewById 说再见 (KAD 04) -- 更新版
- kotlin初窥之Kotlin Android Extensions
- Android开发,Kotlin的了解与学习(二)-----Kotlin数据类型与Extensions的学习
- kotlin学习(-)android extensions
- Kotlin编程之Kotlin Android Extensions(扩展插件)
- Use Kotlin Android Extensions
- Kotlin Android Extensions的集成相关
- 简单介绍 Kotlin for Android
- 用Kotlin语言写一个简单的Android Demo(有详细步骤和各种解决方法)
- 学习笔记——Android创建应用程序和活动
- Android Kotlin anko 标题居中
- Android Kotlin开发实例(Hello World!)及语法详解
- Android谷歌官方语言Kotlin用法入门教程
- Kotlin编写Android适配器Adapter
- 学习笔记_android之选择合适的数据存储方式
- 用Kotlin开发Android应用(III):扩展函数和默认值