상대 위치로 배치 - RelativeLayout
RelativeLayout은 상대 뷰의 위치를 기준으로 정렬하는 레이아웃 클래스입니다. 즉 화면의 특정 뷰를 기준으로 방향을 지정하여 배치합니다.
- android:layout_above: 기존 뷰의 위쪽에 배치 / ex) android:layout_above="@id/testImage"
- android:layout_below: 기존 뷰의 아래쪽에 배치 / ex) android:layout_below="@id/testImage"
- android:layout_toLeftOf: 기존 뷰의 왼쪽에 배치 / ex) android:layout_toLeftOf="@id/testImage"
- android:layout_toRightOf: 기존 뷰의 오른쪽에 배치 / ex) android:layout_toRightOf="@id/testImage"
맞춤 정렬
- android:layout_alignTop: 기존 뷰의 위쪽을 맞춤 / ex) android:layout_alignTop="@id/testImage"
- android:layout_alignBottom: 기존 뷰의 아래쪽을 맞춤 / ex)android:layout_alignBottom="@id/testImage"
- android:layout_alignLeft: 기존 뷰의 왼쪽을 맞춤 / ex) android:layout_alignLeft="@id/testImage"
- android:layout_alignRight: 기존 뷰의 오른쪽을 맞춤 / ex) android:layout_alignRight="@id/testImage"
- android:layout_alignBaseline: 기존 뷰와 텍스트 기준선을 맞춤 / ex) android:layout_alignBaseline="@id/testImage"
상위 레이아웃을 기준으로 맞춤 정렬
- android:layout_alignParentTop: 부모의 위쪽을 맞춤 / ex) android:layout_alignParentTop="true"
- android:layout_alignParentBottom: 부모의 아래쪽을 맞춤 / ex)android:layout_alignParentBottom="true"
- android:layout_alignParentLeft: 부모의 왼쪽을 맞춤 / ex) android:layout_alignParentLeft="true"
- android:layout_alignParentRight: 부모의 오른쪽을 맞춤 / ex) android:layout_alignParentRight="true"
- android:layout_centerHorizontal: 부모의 가로 방향 중앙에 맞춤 / ex) android:layout_centerHorizontal="true"
- android:layout_centerVertical: 부모의 세로 방향 중앙에 맞춤 / ex) android:layout_centerVertical="true"
- android:layout_centerInParent: 부모의 가로*세로 중앙에 맞춤 / ex) android:layout_centerInParent="true"
겹쳐서 배치 - FrameLayout
FrameLayout은 뷰를 겹쳐서 출력하는 레이아웃 클래스입니다. 이 레이아웃은 똑같은 위치에 뷰를 겹쳐서 놓고, 어느 순간 하나의 뷰만 출력할 때 사용합니다. 뷰의 표시 여부를 설정하는 visibility 속성을 함께 사용합니다. 액티비티 코드에서 함수들을 통해 표시 여부를 관리할 수도 있습니다.
표형태로 배치 - GridLayout
GridLayout은 행과 열로 구성된 테이블 화면을 만드는 레이아웃 클래스입니다. LinearLayout처럼 orientation 속성 을로 방향을 정해 뷰를 나열하지만 자동으로 줄 바꿈을 해준다는 차이가 있습니다.
- orientaion: 방향 설정 / ex) android:layout_orientaion="horizontal"
- rowCount: 세로로 나열할 뷰 개수 / ex) android:layout_orientaion="3"
- columnCount: 가로로 나열할 뷰 개수 / ex)android:layout_orientaion="3"
특정 뷰의 위치 조정하기
- layout_row: 뷰가 위치한 세로방향 인덱스
- layout_column: 뷰가위치한 가로방향 인덱스
특정 뷰의 크기 확장하기
LinearLayout처럼 layout_gravity를 통해 뷰의 크기를 조절할 수 있습니다.
열이나 행 병합하기
- layout_rowSpan: 세로로 행 병합
- layout_columnSpan: 가로로 행 병합