일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 국회의원 & 높으신 분들 어록
- https://tecoble.techcourse.co.kr/post/2021-08-07-logback-tutorial/
- https://minkwon4.tistory.com/161
- Today
- Total
OPEN between Secret
대표적 레이아웃 본문
위젯과 레이아웃
-> 뷰와 뷰 그룹의 역할을 구분하기 위해 뷰의 종류에 따라 다른 이름으로 부름
: 위젯(widget) - 뷰 중에서 일반적인 컨트롤의 역할을 하는 것
: 레이아웃(Layout) - 뷰그룹 중에서 내부에 뷰들을 포함하고 있으면서 그것들을 배치하는 역할을 하는 것
뷰와 위젯, 뷰그룹과 레이아웃
뷰 : 화면을 구성하는 일반적인 요소
위젯 : 화면을 구성하는 일반적인 요소 중에서 사용자의 눈에 보이는 컨트롤의 역할을 하는 화면 구성 요소
뷰그룹 : 뷰를 담고 있는 그릇
레이아웃 : 뷰를 담고 있는 그릇 안의 뷰들을 배치하는 역할을 하는 것을 레이아웃
ConstraintLayout(제약 레이아웃)
- 제약 조건(Constraint) 기반 모델
- 제약 조건을 사용해 화면을 구성하는 방법, 안드로이드 스튜디오에서 자동으로 설정하는 디폴트 레이아웃
LinearLayout(리니어 레이아웃)(horizontal, vertical)
- 박스(BOX) 모델
- 한쪽 방향으로 차례대로 뷰를 추가하며 화면을 구성하는 방법, 뱡항은 필수 속성
- 뷰가 차지할 수 있는 사각형 영역을 할당
- 가로방향 (Horizontal)
: 왼쪽에서 오른쪽으로 쌓임
- 세로방향 (Vertical)
: 버튼 추가시 위쪽엣어 아래쪽으로 쌓임
- 레이아웃 안에 레이아웃을 넣으면 복잡한 화면을 만들수 있음
ex) 로그인 화면 ?
horizontal로 왼쪽부터 하는데 왼쪽은 또 레이아웃 vertical로 아이디 비밀번호 후 다음 오른쪽은 로그인 버튼?
RelativeLayout(상대 레이아웃)
- 규칙(Rule) 기반 모델
- 부모 컨테이너나 다른 뷰와의 상대적 위치로 화면을 구성하는 방법
- 제약레이아웃(ConstraintLayout)이 사용되기 전까지 디폴트 레이아웃이었음.
: 상대적 위치.
ex) 부모컨테이너의 top에 붙이겠다
다른 버튼의 right에 붙이겠다.
* Layout_above = "아이디" 를 하면 아래쪽 아이디 뷰랑 겹치지 않게 됨
* Layout_bloew = "아이디" 를 하면 위쪽 아이디 뷰랑 겹치지 않게 됨.
FrameLayout(프레임 레이아웃)
- 싱글(Single) 모델
- 가장 상위에 있는 하나의 뷰 또는 뷰그룹만 보여주는 방법
- 여러 개의 뷰가 들어가면 중첩하여 쌓게 됨, 가장 단순하지만 여러 개의 뷰를 중첩한 휴 각 뷰를 전환하여 보여주는 방식으로 자주 사용함
ex) 화면이 꽉 찬 버튼 3개가 있을시. 제일 위로 올린 버튼만 보인다는것.
-> 화면 전환의 효과가 있다?
-> Overlay(중첩) 기능 -> 뷰를 추가할수록 추가된 순서로 차곡차곡 쌓임.
-> 가시성(Visivility) 속성.
-> 하나의 화면으로 표시되는 activity 안에서도 여러 개의 뷰가 전환되도록 만들 수 있음.
-> 프레임 레이아웃을 사용하는것보다 뷰플리퍼(ViewFlipper)와 뷰페이저(ViewPager)를 사용하셔 더 쉽게 뷰를 변경할수 있음.
TableLayout(테이블 레이아웃)
- 격자(Grid)모델
- 격자 모양의 배열을 사용하여 화면을 구성하는 방법
- HTML 에서 많이 사용하는 정렬 방식과 유사하지만 많이 사용하지는 않음
- 잘 사용하지 않음 -> 그리드뷰(GridView)라는 위젯이 거의 유사한 기능을 제공하기 때문
- stretchColumns = tableRow 시 오른쪽에 공간이 남지 않게 다 채우고 싶을때 쓰는 것
: tableLayout 에다가 써줘야 함.
ex) android:stretchColumns = "0,1,2" -> 0,1,2는 각 각 인덱스 번호 총 3개의 뷰가 있다는 거지.
- Layout_column
: TableRow 태그 안에 추가하는 뷰는 순서대로 0,1,2의 인덱스가 자동 부여되지만 layout_column을 사용하면 인덱스를 지정하여 순서를 정할 수 있음
- layout_span
: 뷰가 여러 칼럼에 걸쳐 있도록 만들기 위한 속성, 뷰가 몇개의 칼럼을 차지하게 할 것인지 지정
ScrollView - 어떤 뷰의 내용물이 그 뷰가 차지하는 화면 영역을 벗어나느 경우 간단하게 스크롤을 만들 수 있는 방법을 제공
절대 레이아웃(AbsoluteLayout)) - 뷰의 위치를 좌표 값을 직접 지정하는 방법. 그러나 안드로이드 단말은 해상도나 화면 크기가 모두 달라 절대 좌표를 사용하여 만들수가 없음.
GridLayout(GridView = 위젯)
뷰 영역
- Padding
: 뷰가 레이아웃에 추가 된후 뷰의 영역에서 내용물에서 뷰의 테두리까지의 공간
- Margin
: 뷰가 레이아웃에 추가 된후 뷰의 영역에서 테두리 바깥 공간
뷰의 배경색
-
'T.N.V > 안드로이드' 카테고리의 다른 글
안드로이드 토스트 & 대화상자 & 프로그래스 (0) | 2017.12.29 |
---|---|
안드로이드 방향전환에 대하여 (0) | 2017.12.29 |
애플리케이션 구성하기 (0) | 2017.12.19 |
기본 위젯들 (0) | 2017.12.19 |