Jack Wharton 官宣 ButterKnife 废弃了

2020 年 3 月 26 日
 insomnia1232

还在改 findviewbyid 代码的我:)

https://twitter.com/JakeWharton/status/1242537704887406593?s=19

15783 次点击
所在节点    Android
15 条回复
hahaayaoyaoyao
2020 年 3 月 26 日
ReinWD
2020 年 3 月 26 日
青春结束了(
insomnia1232
2020 年 3 月 26 日
@hahaayaoyaoyao 感觉没有 kotlin 的插件方便哦
lear7
2020 年 3 月 26 日
Kotlin 里在 Adapter 里还需要 findviewbyid,无法用 extension
clodds
2020 年 3 月 26 日
所以说 尽可能用原生写就用原生写吧,第三方还是....
basefas
2020 年 3 月 26 日
AS 直接提示也没麻烦到哪去,对项目的侵入还大,能不用就不用
MarkTonyFromMars
2020 年 3 月 26 日
@lear7

```
import kotlinx.android.synthetic.main.item_layout.view.*

override fun onBindViewHolder(holder: ViewHolder, position: Int) {
with(holder.itemView) {
title.text = " "
}
}
```

另外也推荐一下我自己写的文章: https://tonnyl.io/hello-viewbinding/ 或者是 https://mp.weixin.qq.com/s/VLhUBYiQ1kYXomm9_WqAEQ
hyyou2010
2020 年 3 月 27 日
被 view-binding or data-binding 替代了。
bkmi
2020 年 3 月 27 日
@MarkTonyFromMars 你知道你代码里面的 title 翻译成字节码是 findViewById(R.id.title) 吗?
一个解决办法是把 title 声明为成员变量,只 find 一次
MarkTonyFromMars
2020 年 3 月 27 日
@bkmi 我知道在字节码里每次都是 findViewById 但是上面 lear7 说不能用 kotlin android extension, 我是为了反驳这个, 能用, 只是不好用
lear7
2020 年 3 月 27 日
@MarkTonyFromMars 在里边是可以用,但我的 GenericAdapter 是把 Binding 方法抽到外部的,在外部会报空,你知道怎么解决吗?
MarkTonyFromMars
2020 年 3 月 27 日
@lear7 还是用传统的 findViewById 吧, 用 bkmi 的那种提到的方法, 我觉得 kotlin android extension 不适合用在 recycler view adapter 里
insomnia1232
2020 年 3 月 27 日
@bkmi 不是会有个 map 缓存 view 吗 不是每次都 find 吧
fansangg
2020 年 3 月 29 日
@lear7 不是有 layoutContainer
CodeGou
2020 年 3 月 30 日
viewbinding 真香

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/656538

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX