我正在使用LayoutInflater
将布局添加到自定义 ViewGroup(不是...Layout
简单 ViewGroup 的子类)中。
在与它进行了短暂的战斗并实施了这篇文章中所说的所有内容之后,我设法使内容最终出现,但由于某种原因,它没有按照我想要的方式布局。在布局 XML 中有 3 个元素需要水平分布,中心元素“推动”边缘的元素。
这是使布局膨胀的代码:
private LayoutInflater inf = null;
private Paint backpaint = null;
private ViewGroup inflated = null;
private void inflate(Context context) {
this.setBackgroundColor(0x00000000);
inf = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflated = (ViewGroup)inf.inflate(R.layout.application_heading, null);
this.addView(inflated, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
}
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
inflated.measure(r, b);
inflated.layout(l, t, r, b);
}
起初我只添加了,inflated.layout(l, t, r, b)
但它并没有真正起作用。添加. inflated.measure(r,b)
_ LinearLayout
_WRAP_CONTENT
我试图遍历inflated
ViewGroup 的子级并调用.layout(l,t,r,b)
它们,但这使它们伸展以填充整个布局,一个在另一个之上。
我一定在这里错过了一些非常小的东西。有谁知道它可能是什么?