Я пытаюсь раздуть xml-макет в пользовательский класс View, который затем помещается в LinearLayout в реальном программном обеспечении. Через некоторое Googling мне удалось создать пользовательский класс, который раздувает макет, используя следующий класс:Как раздуть xml-макет в дочерний элемент
public class LitteringView extends RelativeLayout
{
public LitteringView(Context context) {
super(context);
// TODO Auto-generated constructor stub
View.inflate(context, R.layout.littering_layout, this);
}
public LitteringView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
// TODO Auto-generated method stub
for(int i = 0 ; i < getChildCount() ; i++){
getChildAt(i).layout(l, t, r, b);
}
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
// TODO Auto-generated method stub
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
}
Теперь это определенно раздувает, когда я добавить его в LinearLayout:
layout.addView(new LitteringView(getActivity()));
Проблема заключается в том, что он принимает весь экран, в то время как экран должен быть разделен поровну между тремя детьми LinearLayout. Другие виды также создаются динамически. Как я могу помешать ему взять все пространство?
Я пытаюсь создать один пользовательский вид/класс и упаковать его функции внутри него, которые я тогда мог бы легко добавить к родительскому макету (в данном случае LinearLayout), желая использовать xml для определения макета View ,