일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Android
- SwiftUI
- Side Menu
- swift #swift keychain #keychain 사용법
- swift
- DevelopmentRegion
- transformation.map
- 개발자 면접
- base64 변환
- Tuist
- convert base64
- ViewBuilder
- 상단 탭바
- oberve url
- pod install
- 스크롤 탭
- notifychanged
- development language
- url 관찰
- Swift Package Manager
- DataBinding
- List
- UIPresentationController
- GeometryReader
- ios
- url 추적
- UIViewControllerTransitioningDelegate
- scrolling tab
- detect url
- 기존 앱
- Today
- Total
버그 잡이
Fragment 왜 쓰는가? #frgment 탄생배경 #fragment 적용사례 본문
안드로이드의 5번째 구성요소로 인정받고 있는 Fragment.
어떻게 탄생하게 되었는지, 어떻게 사용되고 있는지 알아보겠다.
1. Fragment 탄생 배경
- 과거 단말기의 화면이 작았을때는 view를 담을 수 있는 공간이 제한되었기 때문에 Activity만으로 view들을 표현하기에 충분했다.
- 하지만 태블릿이 등장하면서 Activity만으로는 화면을 다양하게 구성하기 힘들어졌다.
*초기에는 Activity를 중첩하여 넣었지만 생명주기나 여러 구조적인 문제들로 다루기 힘들었다.
- 그래서 등장한 것이 Fragment.
2. Fragment란?
- 생명 주기, 레이아웃, 입력 이벤트를 가지는 액티비티의 모듈식 섹션
- 구글에서는 액티비티에 재사용할 수 있는 "하위 액티비티"라고도 말하였다.
3. 특징
- 액티비티를 분할하여 화면의 한 부분을 정의한다.
- 레이아웃, 동작처리, 생명주기를 가지는 독립적인 모듈이다.
- 액티비티 실행중에 추가, 제거가 가능하다.
4. 생명주기
- 기본적으로 activity의 생명주기를 모두 가지고 있고 여기에 몇가지가 더 추가된다.
onAttach() : fragment가 activity에 붙은 단계
onCreate()
- activity가 생성되는 단계
- 여기서 activity의 요소들을 참조하게 된다면 에러가 발생할 수 있다.
onCreatView()
- fragment의 view들이 생성되는 단계
onActivityCreated()
- 액티비티 생성이 완료된 단계
- 액티비티를 참조, 데이터를 전송하는 등의 동작은 여기서 처리해야한다.
예제)https://www.youtube.com/watch?v=5TcBpnRLlZQ&list=PLQdnHjXZyYafR57vhXjmw2h3YEl0dM0zC&index=21
5. Fragment는 어디에서 쓰이는가?
1) 태블릿 화면에서의 dual panel
- http://thetechnocafe.com/how-to-make-two-pane-layout-in-android/
2) 자연스러운 화면 전환
- activity를 활용해 화면 전환을 해도 되지만 activity가 사라지고 생성되는 짧은 시간의 부자연스러움이 있다.
- fragment를 땠다 붙였다 하면 더욱 자연스러운 화면 전환 효과를 가져올 수 있다.
- ex) Tab layout + fragment / bottom navigaton + fragment
(참고 블로그)
'안드로이드 > 4대 구성요소' 카테고리의 다른 글
android 백그라운드 음악 재생 어떤 service를 쓸 것인가? (0) | 2020.05.06 |
---|---|
[개발자 면접] 안드로이드 4대 구성요소 (Activity, Service, Receiver, Provider) (0) | 2020.03.23 |