본문 바로가기
일상생활 이야기/안드로이드 스튜디오 독학하기

안드로이드 스튜디오 독학하기 26일째

by 인터넷떠돌이 2017. 3. 23.
반응형

안녕하세요?


이번 포스팅에서는 상대 레이아웃이라는 것에 대해서 실습을 해 보고 나서, 그 내용을 포스팅 하고자 합니다. 이번 실습에서는 새로 레이아웃을 만드는 것이 아니라 기존에 있는 activity_main.xml로 가서 text탭을 열도록 합니다.



먼저 새로 나온 안드로이드 스튜디오 2.3에서는 기본적으로 ConstraintLayout이라고 되어 있는데, 이 부분을 지우고 아래의 스크린샷과 같이 Relativelayout으로 바꾸도록 합니다.



이와같은 방식으로 기존에 있는 제약레이아웃(ConstraintLayout)을 상대레이아웃(RelativeLayout)으로 바꿀 수 있습니다. 그 다음에는 기본적으로 첨부되어 있는 Hello World!라고 적혀있는 텍스트뷰를 지우도록 하고 버튼 두개를 추가하도록 합니다. 첫번째 버튼은 레이아웃의 상단에 배치를 하면서 width와 height를 match_parent로 지정을 하도록 합니다.


두번째 버튼은 width는 match_parent로 지정을 합니다만, height는 wrap_content로 지정을 하도록 해서 아래의 스크린샷과 같이 나오도록 레이아웃의 하단에 배치를 하도록 합니다.



일단은 두개의 버튼이 딱 붙어 있는 것을 볼 수 있습니다. 우선 상대 레이아웃은 컴포넌트간에 상대적인 위치나 부모 레이아웃에 대한 상대적인 위치를 지정할 수 있는데, 이를 실습해 보기 위해서 첫번째로 지정한 버튼의 properties를 view all properties로 지정을 해서, 아래의 스크린샷과 같은 속성을 보도록 합니다.



옆에 있는 properties윈도우를 보시면, layout_above라는 항목이 있는데, 첫번째 버튼의 이 항목에다가 두번째 버튼의 ID를 입력하도록 합니다. 그렇게 입력을 해서 위 스크린샷처럼 첫번째 버튼이 두번째 버튼 위에서다가 떠 있는 모양으로 레이아웃의 모양이 배치되도록 합니다.



이번에는 세번째 버튼을 추가해서 레이아웃의 제일 윗쪽에다가 배치한 모양입니다. 이렇게 버튼을 배치한 다음에, 우선은 세번째 버튼의 Layout_above라는 항목에 첫번째 버튼의 ID를 입력하였습니다.



하지만 의도와는 다르게 세번째 버튼이 사라지는 결과만 나왔을 뿐, 전혀 뭔가 되지를 않았습니다. 그래서 이번에는 첫번째 버튼의 Layout_below라는 항목에 세번째 버튼의 ID를 입력하였습니다.



다만 아직도 제 의도와는 다르게 세번째 버튼과 첫번째 버튼이 붙어 있는 것을 볼 수 있었습니다. 그래서 하는 세번째 버튼과 첫번째 버튼의 사이를 띄우기 위해서, 첫번째 버튼의 높이를 직접 design탭에서 직접 첫번째 버튼의 높이를 줄였습니다.



최종결과입니다. 이런식으로 버튼 3개의 위치를 상대적으로 지정을 하였으며, 이렇게 간격을 띄워놓는 데도 성공을 하였습니다. 다만 [Do it 안드로이드 앱 프로그래밍]이라는 책에서는 언급을 했다 시피, 상대레이아웃은 독자적으로 사용이 된다기 보다는 다른 레이아웃의 하위 레이아웃으로 들어가서 버튼과 같은 컴포넌트를 정렬하는 용도로 쓰인다고 합니다.

반응형