본문 바로가기
Android 개발/Android UI

Gravity와 Layout_Gravity 의 구분법 정리

by Developer88 2025. 1. 21.
반응형

XML로 UI를 그리면서,

헷갈리는 속성2가지가 있는데요.

바로 gravity와 layout_gravity입니다.

 

이 둘은 같은 텍스트가 포함되어 있어,

뭐가 다른건지 차이를 알기 어려운데요.

오늘은 이 두 속성의 차이를 구분해 보겠습니다.

 

1. Gravity

Gravity는 뷰 내부 콘텐츠의 위치를 지정합니다.
해당하는 뷰의 자식뷰들을 어디에 배치할지를 결정합니다.

 

아래는 TextView인데요.

TextView내부의 Text들의 배치를 center로 결정하였습니다.

 

<!-- TextView 내의 텍스트가 중앙에 위치 -->
<TextView
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:gravity="center"
    android:text="Hello" />

 

아래에서 사용된 gravity="center_vertical|start"는,

버튼 내부에서,
아이콘과 텍스트를,

세로방향에서는 중앙(center_vertical)에 위치시키고
가로로는 시작 부분(start, 왼쪽)에 배치합니다

 

<Button
    android:layout_width="200dp"
    android:layout_height="60dp"
    android:gravity="center_vertical|start"
    android:drawableStart="@drawable/ic_profile"
    android:drawablePadding="12dp"
    android:paddingStart="16dp"
    android:paddingEnd="16dp"
    android:text="프로필 설정"
    android:textColor="#FFFFFF"/>

 

 

2. Layout_Gravity

layout_gravity는,

자식 뷰가 부모 레이아웃내에서,

어디에 위치할지를 결정하는 속성입니다.

 

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="200dp">
    
    <TextView
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_gravity="center"    // 부모(LinearLayout) 안에서 중앙에 위치
        android:gravity="center"           // TextView 안의 텍스트가 중앙에 위치
        android:text="Hello"
        android:background="@color/gray"/>
        
</LinearLayout>

 

이상으로 android xml에서,

gravity와 layout_gravity의 속성차이에 대해 알아보았습니다.

 

728x90

댓글