我试图在每个视图和它的AttributeSet上获得回调,当在活动中创建时,我尝试将LayoutInflaterCompat.setFactory
与自定义LayoutInflaterFactory
一起使用,这样我就可以接收从活动LayoutInflater创建的所有视图,但似乎它不处理自定义视图和任何类型的ViewGroup。
public View onCreateView(View parent, String name, Context context, AttributeSet attrs) {
final View view = parentLayoutInflaterFactory.onCreateView(parent, name, context, attrs);
在上面的代码中,如果视图是ViewGroup元素或自定义视图(如支持工具栏),则视图返回null。
所以我做的是使用一些反射将一个私有工厂注入LayoutInflater,它工作正常(与书法库相同)。
但我试图避免任何hacky方式,有没有更好的方法来处理这个?