jc01rho의 일상잡다

동적 레이아웃 설정 본문

컴퓨터/안드로이드

동적 레이아웃 설정

jc01rho 2011. 9. 21. 01:43

저도 잘은 모르지만 이거 말씀하시는건지..

// 동적 레이아웃 설정
  LinearLayout root = new LinearLayout(this);
  LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
    ViewGroup.LayoutParams.FILL_PARENT,
    ViewGroup.LayoutParams.FILL_PARENT, 0.0F);
  root.setLayoutParams(params);
  root.setOrientation(LinearLayout.VERTICAL);

  // TextView
  TextView tv = new TextView(this);
  tv.setText("Type here :");
  LinearLayout.LayoutParams tvParams = new LinearLayout.LayoutParams(
    ViewGroup.LayoutParams.WRAP_CONTENT,
    ViewGroup.LayoutParams.WRAP_CONTENT, 0.0F);
  tv.setLayoutParams(tvParams);
  root.addView(tv);

  // EditText

  RelativeLayout.LayoutParams edittextParams = new RelativeLayout.LayoutParams(
    ViewGroup.LayoutParams.WRAP_CONTENT,
    ViewGroup.LayoutParams.WRAP_CONTENT); 
  edittext.setLayoutParams(edittextParams);
  root.addView(edittext);

  // button
  RelativeLayout.LayoutParams buttonParams = new RelativeLayout.LayoutParams(
    ViewGroup.LayoutParams.WRAP_CONTENT,
    ViewGroup.LayoutParams.WRAP_CONTENT);
  buttonParams.addRule(9);
  button.setLayoutParams(buttonParams);
  root.addView(button);

  setContentView(root); //앞에서 선언된 것들 한꺼번에 보여주기


Xml Layout과 약간 다르고 이대로 코딩 하시면 됩니다.(TextView, EditText, Button 3개 쓰는 법)
addRule(9)이게 좀 헤깔리는데 이건 앞의 위젯(컴퍼넌트)과의 상대적인 위치를 뜻하는 거구요.
RelativeLayout.LayoutParams API에 각 번호에 대한 위치 설명 있습니다.

Comments