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

在自定义视图中使用ButterKnife时,在哪里调用绑定和解绑方法?

在自定义视图中使用ButterKnife时,可以在自定义视图的构造方法中调用绑定方法,而在自定义视图销毁的时候调用解绑方法。

具体来说,可以在自定义视图的构造方法中调用ButterKnife.bind()方法来绑定视图,示例如下:

代码语言:txt
复制
public class CustomView extends View {
    public CustomView(Context context) {
        super(context);
        ButterKnife.bind(this);
    }
}

在自定义视图销毁的时候,可以在自定义视图的onDetachedFromWindow()方法中调用ButterKnife.unbind()方法来解绑视图,示例如下:

代码语言:txt
复制
public class CustomView extends View {
    public CustomView(Context context) {
        super(context);
    }

    @Override
    protected void onDetachedFromWindow() {
        super.onDetachedFromWindow();
        ButterKnife.unbind(this);
    }
}

这样就可以在自定义视图中正确地使用ButterKnife进行视图绑定和解绑了。

ButterKnife是一个Android开发中常用的视图注入框架,它可以通过注解的方式来简化视图的绑定操作,提高开发效率。通过使用ButterKnife,开发者可以通过注解来自动绑定视图,避免了繁琐的findViewById操作,同时还可以减少代码量,提高代码的可读性。

推荐的腾讯云相关产品:无

产品介绍链接地址:无

相关搜索:在DialogFragment中使用Kotlin中的自定义布局进行视图绑定使用jquery ajax时,无法在servlet中调用其他类方法在使用回收程序视图时,尝试调用空对象引用上的虚拟方法在Rails应用程序中调用方法时,常规使用括号是什么?在使用Mockito.verify()时,不是只检查函数是否在模拟对象上调用,而是调用真实对象中的方法在使用.get方法调用IntVar()值时,使用循环在Tkinter中创建复选按钮会导致意外的行为使用GithubBrowserSample在没有transformation.switchmap的情况下在视图模型中执行存储库方法调用Java方法在使用Swing时-是否可以在同一个类中的另一个事件方法中调用事件方法?当使用者在MassTransit RouterSlip中引发异常时,为什么Compensate方法不调用当凭证存储在Vault中时,使用spring云连接器的服务绑定方法是否相关?在flutter中从本地存储获取文件时,即使在使用try catch之后也对null调用了方法‘readCounterJavascript自定义类方法在使用Babel后不能调用同一类中的另一个方法在java反应器中不适当的阻塞方法调用中使用objectmapper时收到警告在使用BIND()将自定义组件方法绑定到组件时,我们可以将第一个参数作为组件本身传递吗?当会话自动过期时,我在代码触发器中的何处调用我的自定义控制器方法?错误:使用C++时,没有用于调用的匹配函数。尽管在head文件中包含了相关方法在调用一个参数时,使用#each迭代的Gem中的方法链接的参数的yield块会返回什么?有没有一种方法可以在postgresql自定义聚合中预先排序行,而不在聚合调用中使用ORDER BY?
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Butterknife全方位解析

    概述 Butterknife是供职于Square公司的JakeWharton大神开发的开源库,使用这个库,AS搭配Android ButterKnife Zelezny插件,可以大大提高开发的效率,...里的ViewHolder绑定问题 3、运行时不会影响APP效率,使用配置方便 4、代码清晰,可读性强 如何导入ButterKnife 项目的build.grade文件中进行如下配置: buildscript...我们知道,注解分为好几类, 有源码生效的注解,有类文件生成生效的注解,有在运行时生效的注解。...而ButterKnife使用的则是编译器时期注入,使用的时候,需要配置classpath ‘com.neenbedankt.gradle.plugins:android-apt:1.8’ , 这个配置说明...exp: Map 自定义ButterKnife具体实现 一 , 创建注解 , 对视图进行注解,R.id.xxx , 所以注解类型是int类型 /** * Created by myl on 2016/

    72130

    Android开源框架源码解析系列(3)——ButterKnife源码解析

    3、Activity不需要做解操作,Fragment 必须在onDestroyView()做解操作。...(其他的有些注解框架可以) 6、使用Activity为根视图绑定任意对象,如果你使用类似MVC的设计模式你可以Activity 调用ButterKnife.bind(this, activity)...7、使用ButterKnife.bind(this,view)绑定一个view的子节点字段。如果你子View的布局里或者自定义view的构造方法使用了inflate,你可以立刻调用方法。...或者,从XML inflate来的自定义view类型可以onFinishInflate回调方法使用它。...1.3 ButterKnife基本使用 Activity绑定ButterKnife: 建议写一个BaseActivity完成绑定,子类继承即可。

    94530

    WPF事件绑定和解

    前言 WPF事件的绑定和解放在什么生命周期中比较合适呢? 窗口 WPF ,窗口(Window)是一种特殊的控件,其生命周期也包括了一系列的事件,你可以在这些事件中进行事件的绑定和解。...myButton.Click += MyButton_Click; } Closed 事件: 当窗口已经完全关闭并且将要从视图中移除,可以 Closed 事件中进行一些清理工作。...控件 WPF(Windows Presentation Foundation)开发,通常在控件的生命周期方法中进行事件的绑定和解是比较合理的。...以下是一些常用的生命周期方法,你可以考虑在这些方法中进行事件的绑定和解: Loaded 事件: 控件已经被加载到 Visual 树,可以安全地进行事件绑定。...-= MyButton_Click; } MVVM OnDetaching 方法 (MVVM 模式): 如果你使用了 MVVM 模式,你可以自定义的附加行为实现事件的绑定和解逻辑。

    55140

    Android-ViewModel和LiveData使用详解

    例如:Activity配置发生改变(屏幕旋转),Activity就会重新创建,onCreate()方法也会重新调用。...我们可以onSaveInstanceState()方法中保存数据,并从onCreate()方法通过Bundle恢复数据,但这种方法只适用于可以对其进行序列化的少量数据,而不适用于潜在的大量数据。...直到当前Activity被系统销毁,Framework会调用ViewModel的onCleared()方法,我们可以onCleared()方法做一些资源清理操作。...没有内存泄漏 当观察者被绑定他们对应的LifeCycle以后,当页面销毁他们会自动被移除,不会导致内存溢出。...使用(演示 Activity与Fragment中和Fragment与Fragment相互通信) Activity: package io.dcloud.H56580E2E.viewModelLiveData

    3.5K30

    【Android】ButterKnife 8.x详解

    不得不承认,在这之前,我对ButterKnife使用,也只停留在绑定视图和点击事件上。??? 介绍 ButterKnife我已经用了好一段时间了,它除了方便,还是方便。...动态生成绑定事件或者控件的java代码,然后在运行的时候,直接调用bind方法完成绑定,因此你不必担心注解的性能问题。骚年,放心去用吧。...onCreateView中使用bind方法,会返回一个Unbinder对象,该对象中有的unbinder方法,可以将Fragment的View设置为null Adapter 例:绑定布局的...自定义View绑定事件监听无需ID public class FancyButton extends Button { @OnClick public void onClick() {...不用担心,ButterKnife包含了findById()方法来替代findViewById(),可以View,Activity, 或Dialog中使用 View view = LayoutInflater.from

    1.4K100

    自定义Android IOC框架

    PS:不要说你使用一万个注解的话会怎么样?因为你不可能同时调用一万个方法吧。所以,性能方面可以放心。 正所谓:无反射,不框架! 而关于注解呢,又有两种方式:运行时注解、编译注解。...编译注解就是程序编译根据注解进行一些额外的操作,大名鼎鼎的ButterKnife运用的就是编译注解,ButterKnife我们编译,就根据注解,自动生成了一些辅助类。...比如Butterknife的实现方式:就是调用APT,用JavaFileObject在编译根据注解创建了一个辅助类,也就是传说中代码生成器:用代码生成代码!...二、自定义IOC框架的使用 1.使用说明 (1) 类注解: IContentView:注入ContentView (2) 字段注解: IView:注入View IString:注入String IColor...:注入Colo (3) 方法注解: IClick:注入点击事件 (4) 工具类: InjectUtil.bind(this):绑定Activity InjectUtil.unbind(this):解Activity

    35110

    锦囊篇|一文摸懂ButterKnife

    使用方法 最新版本具体信息根据ButterKnife的官网来进行查找。 导入包。 app下的build.gradle的dependencies中进行引入,当然高版本也容易出现问题。...源码分析 使用ButterKnife的时候其实我们是否注意到一个问题,我们一定需要写一个这样的一段代码。 ButterKnife.bind(this); 如果不写会出现下方这样的错误。...中一个变量,是根布局视图的载体 // 详细需要查看Window的唯一子类PhoneWindow // Activity和Window绑定,获取当前的根视图 View sourceView...如果没有找到,就直接返回为空;如果找到构造方法了,就进行构造(使用的ClassLoader来加载,也就是反射机制)。...(3)编译就会调用到的一个注解 ButterKnifeProcessor我们发现了一个注解@AutoService(Processor.class)说明了这个文件,而这个注解就是为了编译进行加载的

    81440

    Butter Knife用法总结

    早就听过Butter Knife这个神器,公司最近新开了一个项目,用到了这个框架,但也只是简单使用自动绑定控件,昨天抽时间看了下官网,发现这个框架还可以做其他很多的工作,来提高开发效率,总结一下常用用法...R.dimen.spacer) Float spacer; // int (for pixel size) or float (for exact value) field // ... } 根据自定义的根布局来自动绑定布局里的控件...return view; } } adapter里绑定控件 public class MyAdapter extends BaseAdapter { @Override public View...与Activity相比,Fragment的视图具有不同的生命周期,onCreateView绑定视图的时候,Butter Knife会返回一个Unbinder类型的对象,我们可以合适的生命周期回调方法调用它...unbind()方法来解除绑定

    63540

    【Android APT】注解处理器 ( 根据注解生成 Java 代码 )

    ) 【Java 注解】自定义注解 ( 注解解析 ) 【Java 注解】自定义注解 ( 使用注解实现简单测试框架 ) 【Android APT】编译技术 ( ButterKnife 原理分析 ) 【Android..., 上面的 注解处理器 本质上就是 编译 生成该接口的实现类 , 并实现了其中的 bind 方法 , 每个 Activity 界面都要 生成一个该接口的子类对象 , 该 生成的 IButterKnife...(T target); } 严谨一点的话 , 该接口一般是定义 Android 依赖库 ; 三、视图绑定主要操作 ---- Activity 界面 , 调用 ButterKnife.bind...; 直接创建该对象 , 并调用对象的 bind 方法 , 即可完成视图绑定 ; ButterKnife 及静态 bind 方法实现 : package kim.hsl.apt; public class...ButterKnife { /** * Activity 调用方法, 绑定接口 * @param target */ public static

    25310

    自定义注解和解析器实现ButterKnife

    相信绝大部分的Android开发者都曾使用ButterKnife, 利用ButterKnife开发者可以快速的实现实体view与xml的绑定,此外还能绑定各种资源、动画、字符串甚至是点击事件等。...ButterKnife内部的原理就是通过自定义注解+自定义注解解析器来动态生成代码并为我们的view绑定id的。...有一个小技巧就是将注解的变量取名为value(只有一个变量)可以声明注解变量省略变量名,即可以这样使用: @BindView(R.id.my_tv) TextView mTV; 如果我们取名为别的比如...我们的目的是通过读取类自定义注解,生成相应的绑定视图的代码,这就需要一个生成java代码的库javapoet, squre出品,质量绝对上乘。...DeleagteBinder类要包含一个构造函数、一个bindView方法, bingView方法里要为Activity绑定了BindView注解的view绑定id,此外构造函数和bindVIew方法还都有一个

    1.2K60

    XPage系列|是时候抛弃ButterKnife

    5.0的插件Resource 的Id值将不会再是final类型,因此应该避免注解属性中使用Id。...比如,布局中放入了一个 TextView ,视图绑定就会暴露出一个 TextView 类型的属性供开发中使用。...空安全: ViewBinding会检测某个视图是不是只一些配置下存在,并依据结果生成带有 @Nullable 注解的属性。所以即使多种配置下定义的布局文件,视图绑定依然能够保证空安全。...减少控件变量的定义: ViewBinding会自动生成一个绑定类, 我们可以直接通过这个绑定对象去访问布局的控件, 无需再为每个控件的访问去定义一个个的变量....getLayoutId抽象方法, 取而代之的是getCustomRootView方法. /** * 获取自定义根布局 * * @return 自定义根布局

    64120

    使用视图绑定替代 findViewById

    Activity 中使用视图绑定 使用视图绑定时,无须再调用 findViewById 方法,只要直接调用绑定对象的对应属性即可。...每个绑定对象,都会暴露三个静态方法来创建绑定对象实例,下面是每个方法使用场景的简要说明: inflate(inflater) -- 例如 Activity onCreate 方法里,这类没有父视图需要被传入的场合使用...bind(rootView) -- 您已经获得对应视图,并且只想通过视图绑定来避免使用 findViewById 使用。这个方法使用视图绑定改造和重构现有代码非常有用。...两者都被开启使用 标签的布局会由数据绑定来生成绑定对象;而其余的布局则由视图绑定生成绑定对象。 您可以同一 Module 同时使用数据绑定视图绑定。...视图绑定对比 Kotlin 合成方法ButterKnife 关于视图绑定,一个最常见的问题是: "我是否应该用视图绑定替代 Kotlin 合成方法ButterKnife ?

    1.6K30

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

    Activity 中使用视图绑定 使用视图绑定时,无须再调用 findViewById 方法,只要直接调用绑定对象的对应属性即可。...解决方案: Activity 中使用视图绑定时,一定要将绑定对象的 root 属性传入 setContentView() 方法。...每个绑定对象,都会暴露三个静态方法来创建绑定对象实例,下面是每个方法使用场景的简要说明: inflate(inflater) — 例如 Activity onCreate 方法里,这类没有父视图需要被传入的场合使用...bind(rootView) — 您已经获得对应视图,并且只想通过视图绑定来避免使用 findViewById 使用。这个方法使用视图绑定改造和重构现有代码非常有用。...两者都被开启使用 <layout 标签的布局会由数据绑定来生成绑定对象;而其余的布局则由视图绑定生成绑定对象。 您可以同一 Module 同时使用数据绑定视图绑定

    2.4K31
    领券