android – 为什么不能将多个视图绑定到一个所有者?

我有一些观点,我想将它绑定到一个片段.

我在onCreateView中调用了ButterKnife.Bind(this,view),它就像一个魅力.

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

为什么我不能通过ButterKnife向一个所有者注入多个视图?

编辑:
我知道我可以从一个根ViewGroup绑定视图.我对这种情况只是怀疑.在我看来,没有理由引起异常,但ButterKnife抛出异常.

最佳答案 我想也许你试图在两个子View上调用ButterKnife.Bind(),而不是根ViewGroup.

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

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

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

点赞