gpt4 book ai didi

android - 我应该在 ViewHolder 中的哪里解除 ButterKnife 8.x.x 的绑定(bind)?

转载 作者:IT老高 更新时间:2023-10-28 22:13:13 28 4
gpt4 key购买 nike

我有一个使用 ButterKnife 注释的 RecycleView.ViewHolder 类。

我的代码也应该在这个 ViewHolder 类中 unbind() 吗?

public class AView extends RecyclerView.ViewHolder
{
@BindView(R.id.a_text_view) TextView aText;

public AView(final View view)
{
super(view);
ButterKnife.bind(this, view); // It returns an Unbinder, but where should I call its unbind()?
}
}

文档 (http://jakewharton.github.io/butterknife/) 没有讨论这个问题。

最佳答案

根据 Butterknife 的作者 Jake Wharton 所说,unbind()只有 Fragments 才需要.在问题跟踪器上查看此评论:

https://github.com/JakeWharton/butterknife/issues/879

Q: In the RecyclerView, how do we unbind the ViewHolder?

A: You don't need to. Only Fragments need to in onDestroyView().

原因

[ViewHolders] don't outlive the associated view. A Fragment does.

换句话说,因为 Fragment在其Views 之后可能继续存在被销毁,您需要调用.unbind()来自 Fragment释放对 Views 的引用(并允许回收相关的内存)。

使用 ViewHolder ,持有者的生命周期与 Views 相同它拥有。换句话说,ViewHolder及其Views被同时销毁,因此您永远不需要手动清除从一个到另一个的挥之不去的引用。

关于android - 我应该在 ViewHolder 中的哪里解除 ButterKnife 8.x.x 的绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38015412/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com