뷰에 대해 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속성이 적용됨을 알 수 있다.








Posted by huammmm1
,