gravity속성과 layout_gravity속성에 대한 간단한 테스트
뷰에 대해 layout_gravity속성을 지정하여 뷰가 부모 내에서 어느 위치에 배치될 것인가를 지정 할 수 있다.
또한 레이아웃에 대해 gravity속성을 지정하여 레이아웃의 내용물(차일드 뷰)이 레이아웃 내에서 어느 위치에 배치될
것인가를 지정할 수 있다.
그렇다면 다음의 코드는 어떠한 결과를 보일까?
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center_horizontal" >
<TextView
android:layout_width="200dip"
android:layout_height="100dip"
android:layout_gravity="left"
android:background="#ff0000"
android:gravity="right|bottom"
android:text="정렬 테스트"
android:textColor="#00ff00"
android:textSize="30sp" />
</LinearLayout>
layout/activity_main.xml 파일 내에서 리니어 레이아웃 안에 텍스트뷰 하나를 배치하였다.
리니어 레이아웃은 gravity속성을 center_horizontal로 설정해 리니어 레이아웃의 내용물인 텍스트뷰가 수평으로
중앙 정렬되게 하였고, 텍스트뷰에는 layout_gravity속성을 left로 두어 리니어 레이아웃 내에서 텍스트뷰의 위치를
왼쪽으로 정렬하였다. 여기까지만 보면 이 두 옵션은 서로 상충된다. 그렇다면 위 예제를 실행했을 때 레이아웃에
설정한 gravity속성이 적용되어질까? 아니면 텍스트뷰에 설정한 layout_gravity속성이 적용되어질까?
결론적으로 위 예제를 실행해보면 텍스트뷰에서 설정한 layout_gravity="left"옵션이 적용됨을 알 수 있다.
따라서, layout에 gravity속성을 설정하고 차일드뷰에는 layout_gravity속성을 동시에 설정하는 경우에는 차일드뷰에서
설정한 layout_gravity속성이 적용됨을 알 수 있다.