이 글은 [Do it! 안드로이드 앱 프로그래밍](저자 정재곤, 출판사 이지스퍼블리싱) 교재를 보고 공부하며 정리한 글임.
기본 개념을 정리중이다.
wrap_content : 뷰에 들어있는 내용물의 크기가 자동으로 맞춘다
match_parent : 뷰를 담고 있는 뷰그룹의 여유공간을 꽉 채운다.
ConstraintLayout 의 경우에는 버튼의 가로세로를 둘다 match_parent 로 해도 크기는 그대로지만
LinearLayout 으로 하면 화면을 꽉 채운다
LinearLayout은 orientation 속성이 필수 속성이다
레이아웃 기초 익히기
그 중 ConstratinLayout !
제약 조건을 사용하는 ConstraintLayout. 제약 조건이란 뷰가 레이아웃 안의 다른 요소와 어떻게 연결되는지 알려주는 것이다. 연결점과 대상을 연결.
적어도 왼쪽과 위쪽에 연결되어 있어야 한다.(더 해도 되지만 두 개면 됨)
지금은 확인 1 버튼의 왼쪽과 위쪽만 연결해준 모습이다.
그리고 왼쪽에 margin 80을 주어서 간격을 주었다. 배치는 이런식으로 하면 된다.
가운데에 놓고 싶은 경우가 있을 거다. 그럴땐 왼쪽과 오른쪽을 다 연결해주면 된다
그러면 양쪽의 타깃 중간에 위치하게 된다. (margin의 값은 고려되지 않음)
마찬가지로 왼쪽 오른쪽 위 아래 다 연결해주면 정중앙에 연결이 가능하겠지?
약간 치우치게 만들고 싶다면 세로방향Vertical Bias 을 이용한다. 한쪽으로 얼마나 치우쳐 있는지를 나타내는 것이다. 가로방향은 Horizontal Bias이다.
예를 들어 세로방향 바이어스를 35 % 준다면 전체 비율로 부터 35%되는 지점에 위치하게 된다.
가이드라인을 사용할 수도 있다. 실제 화면 구성요소는 아니지만 가이드라인에 맞추어 배치하고 싶을때 사용한다.
activity_menu 라는 파일을 만들어 주었다
그리고 저 동그라미 쳐진게 가이드라인 버튼이다.
이렇게 가이드라인부터의 margin 을 주면서 배치할 수도 있다.
xml 원본 보면서 속성 확인해보기
저건 이 파일이 xml 형식으로 된 것임을 알려준다.
그리고 제약 레이아웃에서 하나의 뷰를 다른 뷰와 연결할 때 사용하는 xml의 속성의 이름은 규칙을 갖는다
layout_constraint[ 소스뷰의 연결점]_[타깃뷰의 연결점]="[타깃뷰의 id]"
이런식으로 쓸 수 있겠다.
가이드 라인의 코드를 보면 orientation 이 있는데 이건 필수다.
layout_constraintGuide_begin 이건 부모 레이아웃 벽면에서 얼마나 떨어질건지 지정하는거다.
<크기를 표시하는 단위>
거리 단위(뷰)에는 dp를 자주 쓰고
텍스트 크기에는 sp를 자주 쓴다.
layout_marginTop : 뷰의 위쪽을 얼마나 띄울지 지정
layout_marginBottom
layout_marginLeft
layout_marginRight
layout_margin : 뷰의 위 아래 왼쪽 오른쪽 얼마나 띄울지 한꺼번에 지정