RelativeLayout 코딩하기

2010. 3. 8. 12:34안드로이드 개발

여러가지 컨트롤들이 적절하게 위치시키도록 하기 위해서는 RelativeLayout을 사용하는데, 주로 XML을 이용하여 레이아웃을 잡다가 코드 상에서 RelativeLayout을 사용해야하는 경우가 생겨서 한번 해봤다. 각각의 컨트롤마다 ID를 부여해주고 그것을 이용하여 상대적으로 레이아웃을 잡아주면 된다.

RelativeLayout layout = new RelativeLayout(this);
layout.setLayoutParams(new RelativeLayout.LayoutParams(
          LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));

mPrevYearButton = new Button(this); 
layout.addView(mPrevYearButton,
          new RelativeLayout.LayoutParams(
                  60,LayoutParams.WRAP_CONTENT));
mPrevYearButton.setText("<<");
mPrevYearButton.setId(1);
        
mNextYearButton = new Button(this);
mNextYearButton.setText(">>");        
layout.addView(mNextYearButton);
{
         RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
           60,LayoutParams.WRAP_CONTENT);
         lp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, 1);
         mNextYearButton.setLayoutParams(lp);
}
mNextYearButton.setId(3);

mDateText = new EditText(this);
mDateText.setFocusableInTouchMode(false);
layout.addView(mDateText);
{
         RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
                    LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
         lp.addRule(RelativeLayout.RIGHT_OF, 1);
         lp.addRule(RelativeLayout.LEFT_OF, 3);
         mDateText.setLayoutParams(lp);
}
mDateText.setId(2);       

setContentView(layout);