假设我有一个具有层次结构ViewGroups的布局,因此A> B> C其中A包含B,B包含C.
我想要夸大一个应该放在C里面的小部分布局,所以在我的活动中我这样做:getLayoutInflator().inflate(R.layout.mySubLayout, ViewGroupC);
但是,不是将subLayout添加到C中,而是将其添加到A.这有什么疯狂?
我甚至查看了inflate()
中的代码,似乎在某些时候调用了传入父级的addView,所以我不明白为什么会发生这种情况。
我知道我可以通过致电
来达到我想要的效果v = inflate(R.layout.mySubLayout, ViewGroupC, false);`
ViewGroupC.addView(v);
但我只是想知道为什么inflate()
没有将膨胀的视图添加到作为第二个父WHICH IS NAMED ROOT传入的ViewGroup,而是找到传入父级的根父级。
这是:
a)一个错误?
b)期望的行为但令人困惑的文件?
c)在我的代码中导致此问题的其他问题是什么?
如果b,为什么这是期望的行为,预期的用例是什么?
对我来说,使用一种方法来扩展布局并将其作为子项添加到它所膨胀的视图组中似乎更直观。