首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏逮虾户

    有趣的Viewbinding委托

    前一阵子我们在使用viewbinding的委托的时候碰到了点crash问题,然后发现了一个比较有意思的解决方案,就和大家展开聊聊。 上述是kotlin对于委托的释义,Viewbinding委托就是把生成Viewbinding实例的过程交给委托类去完成,然后让使用方可以忽略掉其中的细节,是一种非常好玩的模式了。 //非反射写法 private val viewBinding by viewBinding(ViewProfileBinding::bind) //反射写法 private val viewBinding: ItemProfileBinding by viewBinding() 同时他的反射相关的混淆配置文件也非常有意思。 -keep,allowoptimization class * implements androidx.viewbinding.ViewBinding { public static *** bind

    83421编辑于 2022-04-24
  • 来自专栏DevTips

    ViewBinding 视图绑定

    《金刚经》 概述 ViewBinding 是和 Android Studio 3.6 一起发布的,Gradle 要求 3.6.0+,ViewBinding 可以轻松编写可与视图交互的代码,在模块中启用 ViewBinding 后,系统会该模块中的每个 XML 布局文件生成一个绑定类。 buildFeatures {viewBinding true} 如果需要将某个布局文件禁用 ViewBinding 功能,可以在布局文件根视图添加如下配置: <LinearLayout tools 每个 Binding类都实现 ViewBinding 接口,并包含一个 getRoot() 方法,ViewBinding接口的定义如下: /** A type which binds the views in a layout XML to fields. */ public interface ViewBinding { /** * Returns the outermost {@link

    79240编辑于 2023-01-16
  • 来自专栏码客

    Android使用ViewBinding

    注意: 要使用ViewBinding功能,AndroidStudio至少要升级到3.6。 ViewBinding和Kotlin扩展 ViewBinding 和 Kotlin 扩展 都是 Android 开发中常用的技术,用于简化视图查找和绑定的过程。 以下是它们之间的一些比较: ViewBindingViewBinding 是由 Android 官方推荐和支持的库,从 Android Studio 3.6 版本开始引入。 ViewBinding 可以生成类型安全的代码,避免了手动查找和强制转换视图对象的麻烦。 ViewBinding 不会增加 APK 大小,因为它只是编译时生成的代码。 ViewBinding 原理就是 Google在那个用来编译的gradle插件中增加了新功能,当某个module开启ViewBinding功能后,编译的时候就去扫描此模块下的layout文件,生成对应的

    1.9K21编辑于 2023-12-30
  • 来自专栏zinyan

    Android 视图绑定 ViewBinding

    而如果我们先接触的DataBinding 那么就很容易将ViewBinding误解成两个是一样的。但其实他们并不一样。 一个叫做视图绑定(ViewBinding),而另外一个叫做数据绑定(DataBinding)。 1. ViewBinding 要想使用ViewBinding 必须Android Studio 3.6 Canary 11 以上版本才行。 </androidx.constraintlayout.widget.ConstraintLayout> 1.2 Activity 使用ViewBinding 我们如果开启ViewBinding之后,但是 那么ViewBinding功能就没有起作用了。我们需要通过ViewBinding类来注入。

    2.2K10编辑于 2022-12-07
  • 来自专栏代码男人

    Android Jetpack 之ViewBinding和DataBinding

    ViewBinding 通过视图绑定,系统会为模块中的每个 XML 布局文件生成一个绑定类,通过绑定类,我们可以直接操作控件id,而不需要findViewById,这样我们可以避免控件id无效出现的空指针问题 首先我们新建项目,新建MainActivity,对应的布局文件名为:activity_main,在模块的build.gradle中开启视图绑定: viewBinding { enabled = ViewBinding只是为了替代findViewById,优点就是空安全,不过有了kotlin-android-extensions之后,ViewBinding用的应该比较少了吧。 DataBinding和ViewBinding 到这里,我们已经可以使用基础的功能了,后续在项目开发中还需要多实践操作。

    4.2K30发布于 2020-05-21
  • 来自专栏Code

    Android视图绑定ViewBinding的使用

    目前,谷歌在 Android Studio 3.6 Canary 11 及更高版本中加入了新的视图绑定方式ViewBinding。 注意:要使用ViewBinding功能,AndroidStudio至少要升级到3.6。 分析 本文主要从以下方面对ViewBinding进行分析: 使用能解决什么问题; 使用流程; 与之前方法的比较; 原理; 1.使用能解决什么问题 顾名思义ViewBinding的意思就是如何将view与代码绑定在一起 2.使用流程 在要使用ViewBinding的 module 的gradle文件中开启ViewBinding android { …………… viewBinding { 而ViewBinding中, 产生的binding类中的属性是依据XML layout文件生成的,所以Id不会错。

    3.4K10发布于 2021-09-07
  • 来自专栏Android安卓进阶

    Android:Jetpack之视图绑定——ViewBinding

    本节开始折腾,先带来一个超简单的 → ViewBinding(视图绑定)。 3.ViewBinding基本用法 ViewBinding的作用:代替findViewById,还可以保证空安全和类型安全,支持Java。 注:使用ViewBinding,AGP版本需 >= 3.6 接着介绍下基本用法,部分内容搬运自官方文档: 《视图绑定》 ① 启用ViewBinding 需要启用视图绑定的Module,在其build.gradle 另外,如果你想了解布局采集和写Layout部分的逻辑,可以参考 《ViewBinding 的本质》 笔者卷不动了... DataBinding都有,不需要数据绑定,单纯想替代findViewById可以用ViewBinding

    3K30编辑于 2022-04-18
  • 来自专栏Android群英传

    Google挖坑后人埋-ViewBinding(上)

    当然,ViewBinding也不是银弹,对比kotlin-android-extensions,它也有一些问题: 使用比kotlin-android-extensions复杂 依然有需要手动处理的场景 当然也有一些优势: Kotlin Java通吃 空安全 ViewBinding初步 ViewBinding就是为了解决kotlin-android-extensions的这些使用问题而诞生的,它的目的只有一个 要使用ViewBinding非常简单: buildFeatures { viewBinding true } 当我们开启ViewBinding之后,在编译时,AGP会自动帮我们给每个xml布局创建一个 Activity 在Activity中使用ViewBinding一般需要使用到Binding类的inflate方法,一般使用方式如下所示。 因此,在ViewBinding中使用include的layout,有两种方式,一种是给include设置id,这样通过id就可以直接引用,代码如下所示。

    2.8K20发布于 2021-04-26
  • 来自专栏韩曙亮的移动开发专栏

    【Jetpack】ViewBinding 与 DataBinding 简单对比

    ViewBinding 是 2019 年 Android Studio 3.6 版本 开始使用的 , 其作用是 为 Xml 布局文件 生成绑定类 , 借助该 绑定类 , 可以 快速获取 Xml 中的组件 ; ViewBinding 可以代替的代码逻辑 : findViewById 定义 View 组件的成员字段 ViewBinding 与 ButterKnife 功能基本一致 , 编译性能优于 ButterKnife , 因为 ButterKnife 中使用了大量的注解 , 其编译速度要低于 ViewBinding ; ViewBinding 与 DataBinding 比较 , ViewBinding 是一个量级较轻的函数库 ; 集成 DataBinding 要比 ViewBinding 编译速度慢很多 ; 集成 DataBinding 编译后的 Apk 要比 ViewBinding 大几十 KB ; 如果只是想要省略 findViewById 代码 , 使用 ViewBinding 即可 ;

    58320编辑于 2023-05-11
  • 来自专栏Code

    Android视图绑定ViewBinding的使用

    目前,谷歌在 Android Studio 3.6 Canary 11 及更高版本中加入了新的视图绑定方式ViewBinding。 注意:要使用ViewBinding功能,AndroidStudio至少要升级到3.6。 分析 本文主要从以下方面对ViewBinding进行分析: 使用能解决什么问题; 使用流程; 与之前方法的比较; 原理; 1.使用能解决什么问题 顾名思义ViewBinding的意思就是如何将view与代码绑定在一起 2.使用流程 在要使用ViewBinding的 module 的gradle文件中开启ViewBinding android { …………… viewBinding { 而ViewBinding中, 产生的binding类中的属性是依据XML layout文件生成的,所以Id不会错。

    3.6K20发布于 2020-03-20
  • 来自专栏Android安卓进阶

    Android:Jetpack之视图绑定——ViewBinding

    本节开始折腾,先带来一个超简单的 → ViewBinding(视图绑定)。 3.ViewBinding基本用法 ViewBinding的作用:代替findViewById,还可以保证空安全和类型安全,支持Java。 注:使用ViewBinding,AGP版本需 >= 3.6 接着介绍下基本用法,部分内容搬运自官方文档: 《视图绑定》 ① 启用ViewBinding 需要启用视图绑定的Module,在其build.gradle 另外,如果你想了解布局采集和写Layout部分的逻辑,可以参考 《ViewBinding 的本质》 笔者卷不动了... DataBinding都有,不需要数据绑定,单纯想替代findViewById可以用ViewBinding

    1.6K30编辑于 2022-04-18
  • 来自专栏Android、鸿蒙开发

    Android MVVM框架搭建(十)Hilt、ViewBinding、Activity Result API

    单例使用 三、ViewBinding使用 1. ViewBinding介绍 2. 启用ViewBinding 3. ViewBinding使用介绍 4. 三、ViewBinding使用   只有有读者提到为什么不使用ViewBindingViewBinding介绍 ViewBinding是Android Studio 3.6推出的新特性,目的是为了替代findViewById(内部实现还是使用findViewById)。。 启用ViewBinding   ViewBInding和DataBinding一样,只需要在app/build.gradle中进行一次配置就可以使用了。 我们发现这个地方报错了,因为我们的xml中去掉了DataBinding的使用,而ViewBinding有什么好处呢?

    2.5K30编辑于 2022-01-19
  • 来自专栏彭旭锐

    ViewBinding 与 Kotlin 委托双剑合璧

    认识 ViewBinding 1.1 ViewBinding 用于解决什么问题? 1.2 ViewBinding 与其他视图绑定方案对比 在 ViewBinding 之前,业界已经有过几种视图绑定方案了,想必你也用过。那么,ViewBinding 作为后起之秀就一定比前者香吗? ViewBinding 的基本用法 这一节我们来介绍 ViewBinding 的使用方法,内容不多。 ViewBinding 与 Kotlin 委托双剑合璧 到这里,ViewBinding 的使用教程已经说完了。但是回过头看,有没有发现一些局限性呢? 下面,我将带你一步步封装 ViewBinding 属性委托工具。

    2.3K20编辑于 2022-12-22
  • 来自专栏代码男人

    Android Jetpack系列之ViewBinding和DataBinding

    ViewBinding 通过视图绑定,系统会为模块中的每个 XML 布局文件生成一个绑定类,通过绑定类,我们可以直接操作控件id,而不需要findViewById,这样我们可以避免控件id无效出现的空指针问题 首先我们新建项目,新建MainActivity,对应的布局文件名为:activity_main,在模块的build.gradle中开启视图绑定: viewBinding { enabled = ViewBinding只是为了替代findViewById,优点就是空安全,不过有了kotlin-android-extensions之后,ViewBinding用的应该比较少了吧。 DataBinding和ViewBinding 到这里,我们已经可以使用基础的功能了,后续在项目开发中还需要多实践操作。

    2.2K20发布于 2020-05-22
  • 来自专栏云服务器开发

    viewBinding的使用(记一次重构项目的过程)

    viewBinding { enabled = true } } 由于绑定类是创建布局文件即生成的,故想要忽略某个布局需要在根布局添加以下内容 <LinearLayout </LinearLayout> 三、view Binding 基本用法 首先利用布局绑定的类进行创建一个对象,并对其进行初始化,然后就获得一个viewBinding的对象,用此对象进行获取布局所对应的

    1.3K10编辑于 2023-01-31
  • 来自专栏韩曙亮的移动开发专栏

    【OkHttp】Android 项目导入 OkHttp ( 配置依赖 | 配置 networkSecurityConfig | 配置 ViewBinding | 代码示例 )

    简介 ( OkHttp 框架特性 | Http 版本简介 ) 【OkHttp】Android 项目导入 OkHttp ( 配置依赖 | 配置 networkSecurityConfig | 配置 ViewBinding | 代码示例 ) ---- 文章目录 OkHttp 系列文章目录 前言 一、OkHttp 导入流程 1、配置依赖 2、配置 networkSecurityConfig ( 兼容 HTTP ) 二、ViewBinding 配置 1、启用 ViewBinding 2、Activity 初始化 ViewBinding 三、OkHttp 同步 Get 请求 四、代码示例 1、MainActivity 代码 2、build.gradle 配置 ---- 1、启用 ViewBinding 启用 ViewBinding : 在 Module 下的 build.gradle 配置文件中的 android 节点 , 进行如下配置 ; android.buildFeatures.viewBinding = true 2、Activity 初始化 ViewBinding Activity 初始化 ViewBinding : ① 声明视图绑定成员 : 定义 ActivityMainBinding 成员变量

    3.8K30编辑于 2023-03-29
  • 来自专栏韩曙亮的移动开发专栏

    【JetPack】视图绑定 ( ViewBinding ) 各种应用 ( 视图绑定两种方式 | Activity 布局 | 对话框布局 | 自定义组件布局 | RecyclerView 列表布局 )

    视图绑定 ( ViewBinding ) 界面的两种方式 II . Activity 界面中 应用 视图绑定 ( ViewBinding ) III . Dialog 对话框界面中 应用 视图绑定 ( ViewBinding ) IV . 自定义组件 应用 视图绑定 ( ViewBinding ) V . 视图绑定 ( ViewBinding ) 界面的两种方式 ---- 1 . Dialog 对话框界面中 应用 视图绑定 ( ViewBinding ) ---- Dialog 对话框界面中 应用 视图绑定 ( ViewBinding ) : 该界面与 Activity 界面用法基本相同 RecyclerView 列表布局 应用 视图绑定 ( ViewBinding ) ---- RecyclerView 列表布局 应用 视图绑定 ( ViewBinding ) : ① 视图绑定需要在

    2.5K30编辑于 2023-03-27
  • 来自专栏韩曙亮的移动开发专栏

    【JetPack】为现有 Android 项目配置视图绑定 ( ViewBinding ) 模块 ( 视图绑定不影响传统布局操作 | 视图绑定类关联 Activity | 视图绑定类本质 )

    为现有项目配置 视图绑定 ( ViewBinding ) 应用 II . 视图绑定 ( ViewBinding ) 定制 III . 视图绑定 ( ViewBinding ) 对于正常操作的影响测试 IV . 视图绑定 ( ViewBinding ) 关联 Activity 界面 V . 视图绑定 ( ViewBinding ) 本质分析 VI . GitHub 代码地址 I . 为现有项目配置 视图绑定 ( ViewBinding ) 应用 ---- 1 . 视图绑定 ( ViewBinding ) 定制 ---- 1 . 视图绑定 ( ViewBinding ) 本质分析 ---- 视图绑定 ( ViewBinding ) 其本质就是提供了一种加载布局文件的便捷方式 , 与下面的操作本质是类似的 , 只是可以省略很多代码

    1.4K10编辑于 2023-03-27
  • 来自专栏Android知识点总结

    O3-开源框架使用之Butterknife 8.8.1及源码浅析

    try { //返回使用构造函数创建MainActivity_ViewBinding实例: return constructor.newInstance(target, source //获取自动生成的MainActivity_ViewBinding中的两参构造函数 bindingCtor = (Constructor<? MainActivity_ViewBinding.png 可见bind方法,主要是把XxxActivity创建一个XxxActivity_ViewBinding,并创建一个XxxActivity_ViewBinding 对象 ---- 2、现在焦点就在MainActivity_ViewBinding的身上 com.toly1994.butterknifetest.MainActivity_ViewBinding / public class MainActivity_ViewBinding implements Unbinder { //持有一个MainActivity的引用 private MainActivity

    88640发布于 2018-09-29
  • 来自专栏青蛙要fly的专栏

    项目需求讨论— ButterKnife初级小结

    1.生成XXXX_ViewBinding.java文件: ? 我们可以发现在编译后多了一个AAA_ViewBinding.java文件 public class AAA_ViewBinding implements Unbinder { private AAA 源码并掌握原理(三) 2.实例化XXX_ViewBinding.java: ? 的类,也就是AAA_ViewBinding的Class对象, //然后在用这个AAA_ViewBinding的Class对象获取构造器。 的实例,而在AAA_ViewBinding.java的构造函数中对TextView进行了赋值。

    57130发布于 2018-08-29
领券