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

Android Studio 3.6中使用视图绑定替代 findViewById方法

ActivityAwesomeBinding.java) 布局文件中每一个带有 id 视图都会在绑定对象中有一个对应属性,这个属性将拥有正确类型,并且空安全 视图绑定完美支持 Java Kotlin...由于生成绑定类是普通 Java 类,并且其中添加了 Kotlin 友好注解,所以 Java Kotlin 都可以使用视图绑定。...如果您正在使用 Kotlin视图绑定生成类也已经对互操作进行了优化。通过 @Nullable @NonNull 注解使用,Kolin 可以正确将属性暴露为空安全类型。...结合数据绑定来使用视图绑定 视图绑定只是 findViewById 取代方案,如果您希望在 XML 中自动绑定视图,可以使用数据绑定库。数据绑定视图绑定可以生成同样组件,它们可以同时工作。...△ 视图绑定空安全、只引用当前布局中视图、支持 Java Kotlin,同时也更简洁 上图为对比视图绑定、ButterKnife Kotlin 合成方法功能。

2.4K31

使用视图绑定替代 findViewById

为了解决这些问题,视图绑定把 findViewById 替换成了更加简洁安全实现。 视图绑定有下面两个特性: 类型安全: 因为视图绑定总是会基于布局中视图生成类型正确属性。...如果您正在使用 Kotlin视图绑定生成类也已经对互操作进行了优化。通过 @Nullable @NonNull 注解使用,Kolin 可以正确将属性暴露为空安全类型。...结合数据绑定来使用视图绑定 视图绑定只是 findViewById 取代方案,如果您希望在 XML 中自动绑定视图,可以使用数据绑定库。数据绑定视图绑定可以生成同样组件,它们可以同时工作。...在两者都被开启时,使用 标签布局会由数据绑定来生成绑定对象;而其余布局则由视图绑定生成绑定对象。 您可以在同一 Module 中同时使用数据绑定视图绑定。...△ 视图绑定空安全、只引用当前布局中视图、支持 Java Kotlin,同时也更简洁 上图为对比视图绑定、ButterKnife Kotlin 合成方法功能。

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

《Kotin 极简教程》第13章 使用 Kotlin Anko Android 开发

Anko由几个部分组成: 模块 功能说明 Anko Commons 使得对 intents, dialogs, logging等操作更加简单轻量级库 Anko Layouts 快速类型安全动态...在Android开发中,它可以替代 SQLite ORM 框架。相比SQLite,Realm更快并且具有很多现代数据特性,比如支持JSON,流式api,数据变更通知,以及加密支持。...RecyclerView用于在有限窗口展现大量数据,相比ListView、GridView,RecyclerView标准化了ViewHolder,而且更加灵活,可以轻松实现ListView实现不了样式功能...视图成员变量属性数据绑定。...在 verticalLayout 代码段内部,创建了三个Android控件 - 两个 editText 视图一个 button 视图。这里视图属性都在一行里面设置好了。

3.5K30

实战 | 认识 RecyclerView

视图滑出屏幕时,RecyclerView 会复用它并且填充新数据。由于它是通过回收已有的结构而不是持续创建新列表项,所以它可以有效提高应用时间效率空间效率。...实现 RecyclerView 本文会为大家展示如何实现一个简单 RecyclerView,用它来显示不同种类花名称。...首先在 Android Studio 里创建一个工程,并且使用 Empty Activity 模板。设置项目名称,并且选择 Kotlin 作为项目所用语言。...Adapter 类从数据源获得数据,并且将数据传递给正在更新其所持视图 ViewHolder。下图显示了 RecyclerView、Adapter、ViewHolder 和数据之间协作关系。...重写 onCreateViewHolder() 当 ViewHolder 创建时候会调用该方法。在该方法里进行初始化填充 RecyclerView表项视图

1.1K30

【翻译】Kotlin 1.1 新版本同样适合安卓开发者

新版本新特性对于 Java 开发者来说非常有用,将给整个 JVM 开发界带来新可能。 但是这些新特性,比如协程,或者类型别名(举个列子)特性,看起来似乎安卓开发者沾不上边。...但是在我看来首当其冲是在使用 lambda 表达式时候能够让事件监听增加可读性。 如果之前你都还没有听说过类型别名的话,那我告诉你其实它功能就是简单地重命名复杂类型,使其更加具有可读性。...众所周知, RecyclerView ListView 一样没有标准处理单项视图点击事件方式,所以我们必须动手自己写。...尽管谷歌已经宣布放弃 Jack 工具链,但是如果你还在 Java 8 中使用它,那么在 Android Studio 2.4 版本最终发布前,这会对你很有用。...另外一个,将会有一个新潮流就是使用 @JvmOverloads 来实现自定义视图组件构造函数,这从文字意义上来说就是可以用一句话来实现自定义视图构造函数(不过确实是很长一句话),通过一个构造函数默认参数值

1.1K60

第14章 使用Kotlin 进行 Android 开发(1)第14章 使用Kotlin 进行 Android 开发(1)

Android Studio 3.0是第一个支持 Kotlin 语言里程碑式版本(在此之前,可以使用Android Studio Kotlin 插件方式)。...在该版本中提供了许多方便实用功能如代码自动补全语法高亮显示,另外,Android Studio 内置转换工具可以非常方便地把 Java 代码转换成 Kotlin 代码,如下图所示 ?...转换之后 Kotlin 代码 安装 Android Studio 3.0 Android StudioAndroid 官方 IDE。...由于平板比手机屏幕大多,因此平板上可以呈现更多内容,而 Fragment 可以实现同一视图布局在不同大小屏幕上显示不同效果,将 Fragment 加入到 Activity Layout 中,...Studio 3.0 创建一个带 ListActivity Fragment 列表及其详情页展示,同时学习了 Activity Fragment 基本用法。

2.6K30

Android使用ViewBinding

生成代码方式 谷歌在 Android Studio 3.6 Canary 11 及更高版本中加入了新视图绑定方式ViewBinding。...ViewBindingKotlin扩展 ViewBinding Kotlin 扩展 都是 Android 开发中常用技术,用于简化视图查找绑定过程。...以下是它们之间一些比较: ViewBinding: ViewBinding 是由 Android 官方推荐支持库,从 Android Studio 3.6 版本开始引入。...ViewBinding 可以生成类型安全代码,避免了手动查找强制转换视图对象麻烦。 ViewBinding 不会增加 APK 大小,因为它只是编译时生成代码。...Kotlin扩展 对视图数据获取类型安全性没有提供直接支持,需要手动处理可能空指针异常类型转换。 Kotlin扩展 会增加 APK 大小,因为它是在运行时动态添加函数。

40821

Android Studio 3.2新功能特性

布局编辑器中示例数据 许多Android布局具有运行时数据,这使得在应用程序开发设计阶段难以可视化布局外观感觉。您现在可以在布局编辑器中轻松查看您视图预览,其中包含示例数据。...要尝试使用示例数据,请将其添加 RecyclerView 到新布局,单击设计视图下方设计时属性按钮 ,然后从样本数据模板轮播中选择一个选择。...Android Studio 3.2具有内置模板,可帮助您使用新Slice Provider API扩展您应用程序以及新lint检查,以确保在构建切片时遵循最佳做法。...更多新lint检查 除了上一节中介绍Kotlin互操作性lint检查之外,Android Studio 3.2还实现了20个新lint检查,以帮助您查找识别常见代码问题。...改进现有的lint检查 Android Studio 3.2包含对现有lint检查许多改进。例如,资源循环检查现在适用于其他资源类型,并且翻译检测器现在可以在编辑器中即时查找缺失翻译。

5.4K10

kotlin-android-extensions插件也被废弃了?扶我起来

我们可以通过点击Android Studio顶部导航栏Tools -> Kotlin -> Show Kotlin Bytecode来查看这段代码对应Kotlin字节码,然后在弹出窗口中点击Decompile...还有,虽然HashMap是一种O(1)时间复杂度数据结构,但这毕竟只是理论上时间复杂度,实际调用肯定是没有直接访问控件实例快,因此kotlin-android-extensions插件也在无形当中降低了程序运行效率...但由于Kotlin类型系统存在,导致为了实现这一简单功能,需要额外编写一些看上去很奇怪代码,上述代码就是如此。...关于Kotlin类型系统这里我就不展开介绍了,还不了解朋友可以去参考《第一行代码 第3版》第2章内容。...另外,如果想要学习Kotlin最新Android知识,可以参考我新书 《第一行代码 第3版》,点击此处查看详情。

2.7K31

实践 | Google IO 应用是如何适配大尺寸屏幕 UI

在程序运行过程中,我们可以通过 Kotlin 安全调用操作符 (?.) 来根据当前设备配置确定呈现给用户哪一个视图。...我们替代方案是让会议列表双窗格 Fragment 共享同一个 ViewModel,其中又包含了一个 Kotlin 数据流。...一直都可以创建在多种屏幕尺寸上可用布局,这都是由 match_parent 尺寸值、资源限定符诸如 ConstraintLayout 库来实现。...这些独立网格卡片是定义在 res/layout-w840dp 下 备用布局,数据绑定处理信息如何与视图绑定,以及卡片如何响应点击,所以除了不同样式下差异之外,不需要实现太多内容。...Android Studio 同时提供了 可折叠模拟器 自由窗口模式 以简化这些测试过程,因此您可以通过它们来检查您应用对于上述场景响应情况。

2.1K20

ViewBinding 与 Kotlin 委托双剑合璧

ViewBinding 是 Android Gradle Plugin 3.6 中新增特性,用于更加轻量地实现视图绑定(即视图与变量绑定),可以理解为轻量版本 DataBinding。...ViewBinding 是 Android Gradle Plugin 3.6 中新增特性,用于更加轻量地实现视图绑定(即视图与变量绑定),可以理解为轻量版本 DataBinding。... ButterKnife 需要在代码中声明很多变量,其他几种方案代码简洁度较好; 2、编译检查: 编译期间主要有两个方面的检查:类型检查 + 只能访问当前布局中 id。...findViewById、ButterKnife Kotlin Synthetics 在这方面表现较差; 3、编译速度: findViewById 编译速度是最快,而 ButterKnife ...答:Activity 实例 Activity 视图生命周期是同步,而 Fragment 实例 Fragment 视图生命周期并不是完全同步,因此需要在 Fragment 视图销毁时,手动回收绑定类对象

1.6K20

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

使用 Layout Validation 在多个屏幕上对比 UI 当你为多种屏幕规格、屏幕尺寸分辨率开发应用时,需要验证对 UI 所做更改在所支持每个屏幕上都能正常显示。...使用 Layout Validation(布局验证)窗口,你可以同时在多个不同屏幕配置上预览布局,轻松确保你应用兼容各种屏幕尺寸。...更多信息参考: http://d.android.com/studio/releases#4-0-0-feature-plugin 启用或禁用构建功能新选项 Android Gradle 插件具有对很多现代库...(例如数据绑定视图绑定)及构建功能(例如自动生成 BuildConfig 类)内置支持。...buildFeatures DSL:启用或禁用单独构建功能,例如数据绑定 Kotlin DSL:对 Kotlin DSL 脚本文件基本支持 有关改动完整列表,请阅读官方发行说明 http://d.android.com

4.6K30

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

前面在介绍列表视图网格视图时,它们适配器代码都存在视图持有者ViewHolder,因为Android对列表类视图提供了回收机制,如果某些列表项在屏幕上看不到了,则系统会自动回收相应视图对象。...视图持有者设计理念固然美好,却苦了Android开发者,每次由BaseAdapter派生新适配器类,都必须手工处理视图持有者相关逻辑,实在是个沉重负担。...根据这种设计思路,提取出了循环视图基础适配器,它Kotlin代码如下所示: //循环视图基础适配器 abstract class RecyclerBaseAdapter<VH : RecyclerView.ViewHolder...下面便是个循环视图网格适配器,它实现了类似淘宝主页网格频道栏目,具体Kotlin代码如下所示: //把公共属性公共方法剥离到基类RecyclerBaseAdapter, //此处仅需实现getItemCount...对于第一个布局编码,可以考虑将其作为一个整型输入参数;对于第二个数据结构,可以考虑定义一个模板类,在外部调用时再指定具体数据类;对于第三个bind方法,若是Java编码早已束手无策,现用Kotlin

1.8K41

2018 年初值得关注 25 个新 Android项目

- 所有类型自定义都是可能。 该库有很不错文档示例 App ,遵循 Apache-2.0 许可证。 4....9. hyperlog-android https://github.com/hypertrack/hyperlog-android 这是一个公用工具日志库,位于标准 Android 日志类之上,用于存储数据库中日志...TicketView https://github.com/vipulasri/TicketView 这是一个提供卡片视图(Ticket View)库,它提供了 3 种类型 TicketView 边角...RecyclerBanner https://github.com/renjianan/RecyclerBanner 这并非一个库,而是一个示例应用,向你展示了如何使用 RecyclerView 创建轮播视图...与使用 ViewPager 不同是,作者使用了 RecyclerView,通过滑动来达到刷新效果。 这项目有基本文档、app 样例,并且它是在 Apache-2.0 许可下发布

911100
领券