물먹는산세베리아

[3-2] LinearLayout 본문

OS/Android

[3-2] LinearLayout

suntall 2021. 10. 9. 01:15

새 프로젝트를 열면 activity_main.xml 아래 Component Tree에 ConstraintLayout으로 되어 있다.

Code에서 저 부분은 LinearLayout으로 수정

바뀜!

 

드래그 한 부분은 기존 layout과 관련된 부분이라서 삭제해주고 TextView를 Button으로 수정

 

1. orientation 속성

Split 페이지를 보면 Button1, Button2가 수평으로 배치되어 있음

orientation 속성이 생략되어 있기 때문에 속성 기본값인 horizontal로 설정되어 있음

 

각각 Button1영역, Button2 영역임 (캡쳐에는 1,1로 되어 있는데 오른쪽 버튼을 2로 수정)

Button1의 layout_width를 match_parent로 하면 Button2는 화면에서 없어지고

layout_height를 match_parent로 하면 Button1영역을 Button1이 다 채우게 됨

 

 

2. gravity 속성

orientation = 수직

gravity = 수직 기준 중간

orientation = 수직

gravity = 수직 기준 중간 and 오른쪽

orientation = 수직

gravity = 수직 기준 중간 and 오른쪽

button1은 왼쪽, button2는 중간

 

gravity = 수직 기준 중간 and 오른쪽에 대한 코드 삭제하면

다시 왼쪽 상단 기준으로 바뀜

 

 

3. margin, padding 속성

button1과 button2가 남은 영역을 동일하게 나눠 가짐

 

 좀 전의 코드에서 button3의 layout_weight="1"로 한다면 모든 버튼의 비율이 같아진다.

여기서 button2의 layout_weight를 2로 바꾸면 1:2:1로 바뀐다.

 

좌: 200dp/400dp/x 0:0:0  우: 200dp/400dp/x 1:1:1

layout_weight을 0으로 하면 원래 값만큼만 공간을 차지함 

layout_weight을 모두 1로 하면 원래 값만큼 할당한 후에 남는 공간을 그 비율만큼 나눠서(공평하게 1:1:1로)  추가해줌