2013-08-16 1 views
0

xml-layout을 사용자 정의 View 클래스로 확장하려고합니다. 그러면 실제 소프트웨어에서 LinearLayout에 배치됩니다.xml-layout을 자식으로 확장하는 방법 View

layout.addView(new LitteringView(getActivity())); 

문제는이 걸리는 것입니다 : 내가있는 LinearLayout에 추가 할 때

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의 세 자식 사이에서 화면을 똑같이 나누어야합니다. 다른 뷰도 동적으로 생성됩니다. 어떻게하면 전체 공간을 차지하지 못하게 할 수 있습니까?

하나의 사용자 지정보기/클래스를 만들고 그 내부에 함수를 패키지로 만들려고합니다. 그러면 부모 레이아웃 (이 경우 LinearLayout)에 쉽게 추가 할 수 있으며 XML을 사용하여보기의 레이아웃을 정의하려고합니다. .

답변

1

조회수에 '가중치'를 사용해야합니다. 이것에 대한 간단한 예 :

Layout.LayoutParams params = new LinearLayout.LayoutParams(width, height, weight); 

당신은 당신의 사건을 위해 최적화 할 필요가있다. 모든 견해에 동등하게 가중치를 부여하십시오 (예 : 모두 1).보기를 공유해야합니다.

관련 문제