Jack Wharton 官宣 ButterKnife 废弃了

2020-03-26 21:04:19 +08:00
 insomnia1232

还在改 findviewbyid 代码的我:)

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

7549 次点击
所在节点    Android
15 条回复
hahaayaoyaoyao
2020-03-26 21:07:16 +08:00
ReinWD
2020-03-26 21:13:10 +08:00
青春结束了(
insomnia1232
2020-03-26 21:14:42 +08:00
@hahaayaoyaoyao 感觉没有 kotlin 的插件方便哦
lear7
2020-03-26 22:29:40 +08:00
Kotlin 里在 Adapter 里还需要 findviewbyid,无法用 extension
clodds
2020-03-26 22:32:00 +08:00
所以说 尽可能用原生写就用原生写吧,第三方还是....
basefas
2020-03-26 22:40:43 +08:00
AS 直接提示也没麻烦到哪去,对项目的侵入还大,能不用就不用
MarkTonyFromMars
2020-03-26 23:18:20 +08:00
@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-03-27 00:08:37 +08:00
被 view-binding or data-binding 替代了。
bkmi
2020-03-27 00:40:16 +08:00
@MarkTonyFromMars 你知道你代码里面的 title 翻译成字节码是 findViewById(R.id.title) 吗?
一个解决办法是把 title 声明为成员变量,只 find 一次
MarkTonyFromMars
2020-03-27 10:41:22 +08:00
@bkmi 我知道在字节码里每次都是 findViewById 但是上面 lear7 说不能用 kotlin android extension, 我是为了反驳这个, 能用, 只是不好用
lear7
2020-03-27 12:09:57 +08:00
@MarkTonyFromMars 在里边是可以用,但我的 GenericAdapter 是把 Binding 方法抽到外部的,在外部会报空,你知道怎么解决吗?
MarkTonyFromMars
2020-03-27 13:40:32 +08:00
@lear7 还是用传统的 findViewById 吧, 用 bkmi 的那种提到的方法, 我觉得 kotlin android extension 不适合用在 recycler view adapter 里
insomnia1232
2020-03-27 16:02:42 +08:00
@bkmi 不是会有个 map 缓存 view 吗 不是每次都 find 吧
fansangg
2020-03-29 00:13:16 +08:00
@lear7 不是有 layoutContainer
CodeGou
2020-03-30 10:20:19 +08:00
viewbinding 真香

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

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

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

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

© 2021 V2EX