이 글은 원래 네이버블로그에서 쓴글이라 태그문제때문에 xml파일을 이미지로 제공하고있습니다 ㅡ.-;;;;;


안드로이드에서 레이아웃관리는 다른 언어들에비해서 레이아웃 관리하기 힘든거 같습니다 ㅜㅡ
그래픽툴자체가 허접해서 그런걸수도 ㅎㅎㅎ;;
어찌됬건 안드로이드에서 레이아웃을 분리해서 관리하는 방법에 대해서 이야기 해보겠습니다.


 
1.일반적인 문제
보통 레이아웃은 한파일에 뭉쳐서 관리하는 경우가 많은데 이렇게 되면 아무래도 지저분 할수 밖에 없습니다.


꼴랑 3개짜리 레이아웃인데 깁니다.
물론 어떻게 해도 이렇게 배치된 코드는 가독성이 높아질수가 없저.

 
2. 레이아웃 분리하기
달랑 버튼 3개에 무슨 호들갑이냐 하겠지만 레이아웃 하나에 많은 뷰가 들어있다면 슬슬 가독성이 떨어지면서 난감해 지저-_-;
그래서 레이아웃을 자신이 관리하기 편한 만큼 분리하는게 좋습니다.


코드상으로는 양이 더 많아 젔습니다. ㅎㅎㅎ 시작태그와 끝테그가 더 있어야 하니까요.
그게 중요 한게 아니저
일단 이상해보여도 위와 같이 만들고...

 
3. 분리된 레이아웃을 기존 레이아웃에 추가하기


 



//메인 엑티비티의 기본 데이터를 생성
LayoutInflater vi = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
//llTest1에 addView로 뷰를 추가 할수 있다.
llTest1.addView(vi.inflate(R.layout.lo_test, null));

코드를 돌려보면


두개가 같은 동작을 하고 있음을 알수 있습니다.



 
4. 응용을 해보자
여기서 뷰를 하나더 추가 하려면 어떻게 해야 할까요?
둘다 텍스트뷰를 추가해 봅시다.


두개의 레이아웃의 코드량에 따른 이득은 없습니다. 일반적으로 완전이 동일한 레이아웃을 똑같이 추가해서 쓸일은 거의 없으니 말입니다.
어찌됬건 왼쪽 일반적인 레이아웃 관리 방법은 뷰가 늘어남에 따라 관리가 힘들겠다는 느낌이 들것입니다.
특히나 탭뷰같은 것을 쓰게되면 코드는 걷잡을수 없이 복잡해 지저 ㅎㅎ

 
5. 클래스에서 레이아웃 추가하기
다른클래스에서도 레이아웃 추가가 가능합니다.
레이아웃 동적으로 추가하기




  1. 엄성권 2011.10.18 15:18 신고  Address  Edit/Delete  Reply

    덕분에 쉽게 해결했습니다.
    감사합니다.

  2. 김성환 2012.01.06 14:45 신고  Address  Edit/Delete  Reply

    정말 많은 도움이 되었습니다
    어떤 객체에다 버튼을 올리는 와중에 버튼의 위치가 안 잡혀서 고생하고 있었는데
    이거 보고 바로 해결 햇습니다 ^^;

  3. Favicon of https://nnoco.tistory.com BlogIcon 마음이 뛰다 2012.05.30 01:59 신고  Address  Edit/Delete  Reply

    자바 소스 내에서 해도 되지만
    레이아웃 파일에서 include 태그를 사용해도 될 것 같네요

댓글 작성

이름
패스워드
홈페이지
비밀글