gpt4 book ai didi

android - 为什么不能将多个 View 绑定(bind)到一个所有者?

转载 作者:太空宇宙 更新时间:2023-11-03 10:18:04 25 4
gpt4 key购买 nike

我有一些观点,我想把它绑定(bind)到一个Fragment上。我在 onCreateView 中调用了 ButterKnife.Bind(this, view),它非常有效。

但是当我调用 ButterKnife.Bind(this, view.findViewById(R.id.view2)) 时遇到异常。(肯定 view.findViewById(R.id.view2) != null)

为什么我不能通过 ButterKnife 向一个所有者注入(inject)多个 View ?

已编辑:我知道我可以从一个根 ViewGroup 绑定(bind) View 。对于这种情况,我只是半信半疑。在我看来,没有理由导致异常,但 ButterKnife 抛出了异常。

最佳答案

我认为也许您正在尝试在两个 subview 而不是 Root View 组上调用 ButterKnife.Bind()。

根据介绍,您应该通过使用 @Bind 注释声明字段来将任何 subview 绑定(bind)到字段,但不是通过为每个 subview 调用 ButterKnife.Bind() 来绑定(bind)。

ButterKnife.Bind() 只能在根 ViewGroup 对象上调用。通过这种方式,它定义了 ButterKnife 将搜索 View ID 的范围。

但是,如果您真的想在两个根 ViewGroup 上调用 ButterKnife.Bind(),那么发生异常是合理的,因为根据文档,ButterKnife 没有这样的用法。实际上你也应该让每个 Fragment/Activity 类只与一个根 ViewGroup 相关。

关于android - 为什么不能将多个 View 绑定(bind)到一个所有者?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31902740/

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