您的位置:首页 > 其它

Kotlin通过Id操作View,Adapter和动态加载Xml文件也可以类似操作

2017-08-18 19:10 441 查看
如果使用kotlin,什么butterknife绑定,Xutil注解都不需要,只需要通过id就可以操作view,非常方便,但是在使用的过程中还是遇到两个值得记录的问题如下:

针对adapter中通过id来操作

针对动态加载布局通过id来操作

其实两者本质上是一样的,都是通过view访问Id来操作,具体是由kotlin来绑定

上代码一步一步来解析

首先想要用id来操作别,我们的builde文件要加上Extensions配置

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'


然后就可以愉快的使用

activity和fragment直接像想这样就可以访问了:

<Switch
android:id="@+id/main_sw_packet"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="4dp" />


通过id设置监听:

main_sw_packet?.setOnCheckedChangeListener(this)


可以自动导包像这样

import kotlinx.android.synthetic.<你界面的Xml文件名>.*


adapter这样操作:

要导入的包路径:

import kotlinx.android.synthetic.<你界面的Xml文件名>.view.*


通过ViewId访问:

holder.itemView.money_tv_name?.text = entity.name


holder.itemView表示adapter每条数据view

动态加载的view操作:

要导入的包与Adapter类似,直接view.id就可以操作了

例如我这里:

nav_view?.getHeaderView(0)?.main_tv_username?.text = userName


nav_view?.getHeaderView(0)获取父View,后边就可以通过id愉快的操作啦

目前网上这类资料还没有,官网描述也不是特别清楚,这里仅作记录,如有疑问可以留言
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐