xml의 layout_gravity에 대한 숨겨진 규칙
안드로이드 앱 개발을 하다보면
xml 레이아웃 파일에서 조정하는 작업들이
생각처럼 잘 안 먹혀 들어갈 때가 있다.
특히 layout_gravity에 대해 작업할 때
그런 경험을 자주 하게 된다.
그 이유는 이런 개념 때문이다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<Button
android:id="@+id/btnPlus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dip"
android:text=" 테스트 "
android:layout_gravity="center"
android:textSize="25sp" />
</LinearLayout>
LinearLayout의 orientation이 vertical일 경우
Button의 layout_gravity는 수평 관련 속성만 적용이 된다.
예를 들어 layout_gravity="left" 혹은 center_horizontal 혹은 right와 같이 수평 관련 속성만 적용이 된다.
수직 관련 속성은 적용이 안된다.
예를 들어서 layout_gravity="bottom", 혹은 top...은 적용이 안된다.
만일 orientation이 horizontal이라면
Button의 layout_gravity는 수직 관련 속성만 적용이 된다.
bottom, top, center_vertical
이 이야기의 핵심은 LinearLayout에서 첫 번째 방향을 설정했으면(만일 수평이면) 두 번째 방향 설정(layout_gravity)에서는 수평이 상태에서 그 수평 중 어느 위치로 움직일 것인지를 결정하는 것만 허용이 된다는 것이다.
즉 수평이 첫 번째 설정 값이면(LinearLayout에서) 그 수평 중 top에 놓일지, bottom에 놓일지, center_vertical에 놓일지만 결정한다는 뜻이다.
'Android' 카테고리의 다른 글
구글 제공 API 데모(샘플) 소스 이클립스에서 import 하는 법 (0) | 2015.11.19 |
---|---|
지역변수에 final이 붙을 때의 의미에 대해(Cannot refer to a non-final variable 문제) (0) | 2015.11.16 |
안드로이드 타이틀바 없애고 전체화면, 화면 가로로(혹은 세로로) 고정하는 법 (0) | 2015.11.16 |
안드로이드 xml에 공백 및 특수 문자 넣기 (0) | 2015.11.10 |
android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 에러 문제 (2) | 2015.11.09 |