2012-02-12 1 views
1

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의 기본이 된 LinearLayoutWRAP_CONTENT으로 설정된 것처럼 모두 붙어있었습니다.

inflated ViewGroup의 하위 항목을 실행하고 .layout(l,t,r,b)을 호출하려고 시도했지만 전체 레이아웃을 채우도록 스트레칭되었습니다.

여기에 정말 작은 것을 놓치고 있어야합니다. 누구든지 그게 뭔지 알고 있니?

답변

2

포함하는 클래스를 대신 RelativeLayout으로 서브 클래 싱하여 모든 것이 복숭아가되었습니다.

관련 문제