LayoutInflater
을 사용하여 레이아웃을 사용자 정의 ViewGroup (...Layout
이 아닌 간단한 ViewGroup)에 추가합니다.레이아웃 XML에서 사용자 정의 ViewGroup의 내용을 확장 할 때 레이아웃 매개 변수가 적용되지 않습니다.
짧은 전투 후 this post에 나온 모든 것을 구현 한 후 마침내 콘텐츠를 만들 수 있었지만 어떤 이유로 맘에 드는대로 레이아웃되지 않았습니다. 레이아웃 XML에는 중앙 요소가 가장자리에 "밀어 넣는"요소와 함께 가로로 배포해야하는 세 가지 요소가 있습니다. 처음에는
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)
을 추가하고 나면 마침내 내용을 보았습니다. 그러나 마치 팽창 된 XML의 기본이 된
LinearLayout
이
WRAP_CONTENT
으로 설정된 것처럼 모두 붙어있었습니다.
inflated
ViewGroup의 하위 항목을 실행하고 .layout(l,t,r,b)
을 호출하려고 시도했지만 전체 레이아웃을 채우도록 스트레칭되었습니다.
여기에 정말 작은 것을 놓치고 있어야합니다. 누구든지 그게 뭔지 알고 있니?