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

使用视图绑定替代 findViewById

中开启视图绑定 开启视图绑定无须引入额外依赖,从 Android Studio 3.6 开始,视图绑定将会内建于 Android Gradle 插件中。...由于生成的绑定类是普通的 Java 类,并且其中添加了 Kotlin 友好的注解,所以 Java 和 Kotlin 都可以使用视图绑定。...如果您正在使用 Kotlin,视图绑定的生成类也已经对互操作进行了优化。通过 @Nullable 和 @NonNull 注解的使用,Kolin 可以正确的将属性暴露为空安全类型。...视图绑定对比 Kotlin 合成方法与 ButterKnife 关于视图绑定,一个最常见的问题是: "我是否应该用视图绑定替代 Kotlin 合成方法或 ButterKnife ?...△ 视图绑定空安全、只引用当前布局中的视图、支持 Java 和 Kotlin,同时也更简洁 上图为对比视图绑定、ButterKnife 和 Kotlin 合成方法的功能。

1.6K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    要再见了吗,Kotlin Android Extension

    毕竟这个插件在早期为 Kotlin 攻城略地快速吸引 Android 开发者立下了汗马功劳,多年来虽然几乎没有功能更新,但直到现在仍然能够胜任绝大多数场景。 非要说废弃的理由,确实也能罗列几个出来。...为了方便,我们把以 layout 当中 View 的 id 为名而合成的属性简称合成的属性。...合成的属性从导包的形式上来看,像是以 layout 的文件名加上固定的前缀合成的包下的顶级属性,一旦这个包被导入,当前的整个文件当中都可以使用 View、Activity、Fragment 来访问这些合成的属性...我们当然可以把二者一并导入,但问题在于二者即便如此,合成的属性在编译时静态绑定也只能绑定到一个包下面的合成属性下,这样的结果就是我们在 Android Studio 当中点击 warningView.textView...小结 KAE 本质上就是通过编译器生成字节码的方式为 Activity、Fragment、View 提供了以 xml 布局中的 id 为名的合成属性,从而简化使用 findViewById 来实现 View

    1.8K40

    Android使用ViewBinding

    ViewBinding和Kotlin扩展 ViewBinding 和 Kotlin 扩展 都是 Android 开发中常用的技术,用于简化视图查找和绑定的过程。...Kotlin扩展: Kotlin扩展 是 Kotlin 语言的特性,其通过扩展函数的方式,允许开发者为现有的类添加新的函数或属性。...Kotlin扩展 使用起来相对简单,可以直接在布局文件中使用 Kotlin 扩展函数来查找和操作视图。...Kotlin扩展 对视图的数据获取和类型安全性没有提供直接的支持,需要手动处理可能的空指针异常和类型转换。 Kotlin扩展 会增加 APK 的大小,因为它是在运行时动态添加的函数。...如果想在生成绑定类时忽略某个布局文件,将tools:viewBindingIgnore=”true”`属性添加到相应布局文件的根视图中。

    74121

    Android Studio 4.0重磅发布:全新的 Motion 编辑器及众多更新都在这里!

    你用不着再创建和修改复杂的 XML 文件,Motion Editor 会为你生成它们,并支持约束集合、过渡、关键帧和视图属性的编辑。如果你想查看编辑器创建的代码,只需点一下即可。...在 Motion 编辑器中创建、编辑和预览动画 升级的 Layout Inspector 想要调查特定属性的值的源头?或者想通过嵌套视图的实时 3D 表示,更轻松地检查视图层次?...部署到运行 API 29 或更高版本的设备还能获得其他特性,例如动态布局层次结构(随视图更改而更新)、详细的视图属性(还可以帮助你确定资源值是如何解析的)以及正在运行的应用 UI 的 3D 模型。...构建 Android Gradle 插件 4.0.0 使用 Java8 语言 API(无论你的应用的最低 API 级别如何)对 Android Studio 的 Bulid Analyzer 提供支持...(例如数据绑定和视图绑定)及构建功能(例如自动生成的 BuildConfig 类)的内置支持。

    4.7K30

    Android Studio 4.0 重磅发布!Android 11 Bata 版来了!

    你用不着再创建和修改复杂的 XML 文件,Motion Editor 会为你生成它们,并支持约束集合、过渡、关键帧和视图属性的编辑。如果你想查看编辑器创建的代码,只需点一下即可。...部署到运行 API 29 或更高版本的设备还能获得其他特性,例如动态布局层次结构(随视图更改而更新)、详细的视图属性(还可以帮助你确定资源值是如何解析的)以及正在运行的应用 UI 的 3D 模型。...构建 Android Gradle 插件 4.0.0 使用 Java8 语言 API(无论你的应用的最低 API 级别如何)对 Android Studio 的 Bulid Analyzer 提供支持...(例如数据绑定和视图绑定)及构建功能(例如自动生成的 BuildConfig 类)的内置支持。...我们将在明年继续完善 Android Gradle 插件的 DSL API,这可能会导致 Kotlin 脚本用户的 API 更改中断。

    2.6K20

    Android Studio 4.0 正式版发布

    image.png Layout Inspector 全新升级 想要搞清楚某个属性的取值从何而来?或者想通过实时的 3D 画面轻松查看视图的嵌套层级?...如果您的应用是部署到 API 等级 29 或以上的设备,则可以使用到更丰富的功能,比如随着视图变化动态更新的布局层次结构、帮助您更好了解资源取值解析的详细视图属性信息、以及可以展示运行时 UI 结构的实时...新的构建功能开关选项 Android Gradle 插件内置了对现代代码库 (如数据绑定和视图绑定) 和构建功能 (如自动生成 BuildConfig 类) 的支持。...Gradle 插件 DSL 对 Kotlin DSL 脚本文件的基础支持 Android Studio 4.0 现在已经内置了对 Kotlin DSL 构建脚本文件 (*.kts) 的支持,这意味着...虽然我们对使用 Kotlin 来配置构建有很高的期待,但接下来的一年中我们依然会继续完善 Android Gradle 插件的 DSL API,这可能会给 Kotlin 脚本用户带来 API 的重大变更

    3.4K31

    Kotlin入门(23)适配器的进阶表达

    前面在介绍列表视图和网格视图时,它们的适配器代码都存在视图持有者ViewHolder,因为Android对列表类视图提供了回收机制,如果某些列表项在屏幕上看不到了,则系统会自动回收相应的视图对象。...下面便是个循环视图的网格适配器,它实现了类似淘宝主页的网格频道栏目,具体的Kotlin代码如下所示: //把公共属性和公共方法剥离到基类RecyclerBaseAdapter, //此处仅需实现getItemCount...这么神奇的魔法,快来看看Kotlin的适配器代码是如何书写的: //利用Kotlin的插件LayoutContainer,在适配器中直接使用控件对象,而无需对其进行显式声明 class RecyclerStaggeredAdapter...的扩展插件LayoutContainer,第二行代码与Activity的一样表示导入了指定布局文件里面所有控件对象: import kotlinx.android.extensions.LayoutContainer...的扩展插件,所以需要修改模块的build.gradle,在文件末尾添加下面几行配置,表示允许引用安卓插件库: androidExtensions {     experimental = true }

    1.8K41

    Gradle基础|自定义插件并上传到JitPack

    本篇主要概括创建插件的三种方式,并如何上传到 JitPack 中。...插件的作用就是添加我们自己的一些逻辑到项目执行过程中,这个做法在 Gradle 中称其为任务,或者说 Task ,从而对项目进行测试、编译、打包等; 也可以对项目中现有的对象类型添加新的扩展属性、方法等...、也可以配置和优化项目的构建,比如常见的 android{} 就是 Android Gradle 插件为 Project 对象添加的一个扩展。...; 到了这里,那我们如何创建自己的插件文件呢,直接在 src 下创建相应的文件夹即可,然后创建我们自己的插件文件,如下所示: 上面的这个目录格式,根据你自己的写法而定,比如这里我想使用 kotlin...参考 Gradle文档-开发自定义Gradle插件 Android文档-使用 Maven Publish 插件 自定义Android Gradle插件(Kotlin)

    1.1K10

    Gradle Kotlin DSL指南

    此外,IntelliJ IDEA和Android Studio在编辑Gradle脚本时可能会生成多达3个Gradle守护进程——每种类型的脚本都有一个:构建脚本、设置文件和初始化脚本。...在本节中,我们将向您展示如何将Android Plugin应用于单个项目构建或多项目构建的根项目。目的是指导构建如何将com.android.application插件标识符映射到可解析工件。...社区插件也贡献了容器,比如android。buildTypes容器由Android Plugin贡献。 Kotlin DSL为构建作者提供了几种与容器交互的方法。...-jvm-target=1.8 将生成的JVM字节码的目标版本设置为1.8。...(receiver, "parameters", 42, aReference) Copy Kotlin扩展函数是包级函数,您可以在Kotlin参考文档的包级函数一节中了解如何定位声明给定Kotlin扩展的类型的名称

    10.4K20

    31 天,从浅到深轻松学习 Kotlin

    Day 6:属性 在 Kotlin 中,类可以具有可变和只读属性,默认情况下生成 getter 和 setter。如果需要,您也可以实现自定义的。...Day 13:从 Java 编程语言调用 Kotlin 在同一个项目中使用 Kotlin 和 Java?您有没有顶级功能或属性的课程?默认情况下,编译器将生成类名称 YourFileKt。...第三周学习小结: 本周主要讨论一些基本的 Kotlin 特性,如运算符重载,内联,运算符重载,懒加载,以及非常强大的 inLine,并展示了使用 Android KTX 处理内容值,捆绑包和回调时如何编写更简洁的代码...Android 上 Kotlin 的另一个 DSL 是 Anko。Anko 允许您使用声明性代码构建 Android 视图。...Android KTX 允许您使用默认参数在视图的一侧设置填充。一行代码可以节省很多代码!

    2.2K30
    领券