본문 바로가기

안드로이드 Android

01 기본 위젯과 레이아웃 - 2

이 포스트는 개인적인 공부를 위해 정리하는 포스트입니다.

내용은 모두 Do it 안드로이드 앱 프로그래밍에서 나온 것입니다.

[상대 레이아웃]

부모 컨테이너나 다른 뷰와의 상대적인 위치를 이용해 뷰의 위치를 결정. 이때 이미 추가되어있는 뷰의 id를 얻을 필요가 있음.

안드로이드에서 입력상자 기능을 하는 것은 EditText로 xml에서 태그를 이용해 정의한다.

Relative Layout에서 새롭게 들어가는 속성들

layout_alignParentTop - 부모 컨테이너의 뷰의 위쪽을 맞춤

layout_alignParentBottom – 부모 컨테이너의 뷰의 아래쪽을 맞춤

이외에 부모 컨테이너의 왼쪽 끝과 오른쪽 끝을 맞출 수 있고

부모 컨테이너의 수평/수직 중앙에 배치하거나 수평과 수직 정 중앙에 배치하는 것이 가능하다.

 

Linear Layout

layout_gravity="center"

Relative_Layout

layout_centerInParent="center"

공통점

가운데로 동일한 배치

차이점

부모의 남아있는 여유 공간 안에서 배치를 결정

부모 레이아웃 전체에서 배치를 결정

 

layout_below – 지정한 뷰의 아래쪽에 배치하라는 것.

layout_toRightOf –ID로 설정한 다른 뷰의 오른쪽에 배치하라는 것.

이외에 지정한 뷰의 위쪽, 왼쪽에 배치하는 것이 가능하고

지정한 뷰의 왼쪽과 오른쪽, 위쪽, 아래쪽에 맞추는 것이 가능하고

지정한 뷰와 내용물의 아래쪽 기준선을 맞추는 것이 가능하다.

중첩된 레이아웃들의 투명도를 잘 조절하거나 뷰의 fill 속성을 잘 조절하면 좀 더 세련된 화면을 얻을 수 있게 된다.

 

eclipse에서 xml 태그 작업 시 미리 스크롤 팁이 도와주므로 어떤 기능이 가능한지만 이해하고 있으면

코딩에 도움이 될 것이다.

 

[테이블 레이아웃]

표나 엑셀 시트와 같은 구성 화면 TableRow는 한 행을 의미하고 TableRow안에 들어간 뷰가 각각 하나의 열을 의미함.

TableRow의 개수가 행의 개수, TableRow마다 추가된 뷰의 개수가 열의 개수

TableRow의 높이와 너비가 미리 지정되어 있는데, layout_height="wrap_content", layout_width="match_parent"

위 코드의 경우 TalbeRow를 2개 두고 Name : 과 박찬기로 TextView 2개를 각각 하나의 열로 볼 수 있다.

shrinkColumns : 자동 축소를 지정하면 부모 컨테이너의 폭에 맞추도록 각 열의 폭을 강제로 축소.

stretchColumns : 자동 확장을 지정하면 부모 컨테이너의 여유 공간을 모두 채우기 위해 각 열의 폭을 강제로 늘림.

위 두 개의 속성을 지정하면 뷰의 크기를 강제로 축소하거나 확장한다.

layout_span : 여러 열에 걸쳐 뷰를 보이게 할 수도 있음.

 

[스크롤 뷰]

스크롤을 사용하고자 하는 경우 기본적으로 수직 스크롤이라 수평 스크롤을 넣으려면

HorizontalScrollView를 이용한다.