복습
레이아웃(Layout) - Linear, Relative, Grid, Table, Frame 본문
레이아웃(Layout)
: ViewGroup 클래스로부터 상속받으며 내부에 무엇을 담는 용도로 사용
레이아웃에서 자주 사용되는 속성
orientation : 레이아웃 안에 배치할 위젯의 수직, 수평 방향을 설정(Vertical, Horizontal)
![]() Vertical |
![]() Horizontal |
gravity : 레이아웃 안에 배치할 위젯의 위치 설정
layout_gravity : 자신의 위치를 부모의 어디쯤에 위치할 지를 설정
layout_weight : 레이아웃이 전체 화면에서 차지하는 공간의 가중 값을 설정. 여러 개의 레이아웃이 중복될 때 사용
baselineAligned : 레이아웃 안에 배치할 위젯들을 보기 좋게 정렬
LinearLayout
: 가장 기본적인 레이아웃으로 왼쪽 위부터 아래 또는 오른쪽으로 차례로 배치
gravity
<LinearLayout
android:gravity="right|bottom">
right|bottom을 사용하여 레이아웃 안의 오른쪽 아래에 위젯들이 위치 하였다.
layout_gravity
<LinearLayout
android:orientation="vertical">
<Button
android:text="오른쪽"
android:layout_gravity="right"/>
<Button
android:text="중앙"
android:layout_gravity="center"/>
<Button
android:text="왼쪽"
android:layout_gravity="left"/>
</LinearLayout>
vertical이므로 위에서부터 차례대로 오른쪽 중앙 왼쪽으로 배치되었다.
layout_weight
<LinearLayout
android:orientation="vertical">
<LinearLayout
android:orientation="vertical"
android:layout_weight="1">
<Button
android:text="버튼1"/>
<Button
android:text="버튼2"/>
</LinearLayout>
<LinearLayout
android:gravity="center"
android:orientation="horizontal"
android:layout_weight="1">
<Button
android:text="버튼3"/>
<Button
android:text="버튼4"/>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_weight="1">
<Button
android:text="버튼5"/>
<Button
android:text="버튼6"/>
</LinearLayout>
</LinearLayout>
이 경우 처럼 중복 LinearLayout에서 layout_weight를 사용한다.
가장 외부에 큰 LinearLayout이 있고 그 안에 3개의 LinearLayout이 있다.
3개에 모두 layout_weight="1"을 주어 3개 모두 같은 비율로 화면에 출력된다.
RelativeLayout(렐러티브레이아웃)
: 레이아웃 내부에 포함된 위젯들을 상대적인 위치로 배치
부모(레이아웃) 위치(기준)
다른 위젯의 상대적인 위치 배치
위의 속성들로 위젯을 배치하며 기준이 되는 위젯의 id값을 넣어준다.
TableLayout(테이블레이아웃)
- 위젯을 표 형태로 배치할 때 사용
- <TableRow>와 함께 사용되며 <TableRow>의 개수가 행의 개수
- 열의 개수는 <TableRow>안의 위젯 개수
예제
FrameLayout(프레임레이아웃)
: 레이아웃 내의 위젯들이 왼쪽 상단부터 겹처서 출력되는 방식으로 주로 탭 위젯 등과 혼용해서 사용
프레임레이아웃 속성
foreground : 프레임레이아웃의 전경 이미지를 지정
foregroundGravity : 전경 이미지의 위치를 지정
'Android' 카테고리의 다른 글
안드로이드 스튜디오 - 자동완성텍스트뷰(멀티) (0) | 2020.07.06 |
---|---|
안드로이드 스튜디오 - 날짜/시간 예약 앱 만들기 (0) | 2020.07.06 |
안드로이드 스튜디오 - XML 없이 화면 코딩하기 (0) | 2020.07.02 |
안드로이드스튜디오 - 계산기 (0) | 2020.07.01 |
안드로이드스튜디오 - 안드로이드 버전 고르기 (0) | 2020.06.30 |