일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 잡초가득블로그
- UICoordinateSpace
- conflicting access to memory
- memory safety
- Git Large File Storage
- coordinateSpace
- iOS 버전 점유율
- 대머리깃허브
- Dispatch.main.sync
- Github file size
- RIBs Tutorial
- RxCocoa
- App Signing
- Ribs
- iOS Target
- Large File Storage
- Apple Certificate
- 로버트마틴형
- 메모리 접근 충돌
- SWIFT
- swiftdocs
- ios
- Concurrent
- 클린아키텍쳐
- rib
- Dependency Rule
- RxSwift
- windowScene
- in-out
- Automatically manage signing
- Today
- Total
빙수왕의 개발일지
Fragment 생성 시 주의할 점 본문
fragment를 같은걸 2개생성하는걸 방지
-> supportFragmentManager.findFragmentByTag(“”)
를 사용하여 이것이 null일 경우 새로 생성해준다.
이런 메소드를 fragment의 companion object에 넣어주고, 액티비티에서 생성시 얘를 콜함
onAttach의 문제: 프래그먼트에서 프래그먼트를 띄울 때는 호출되지 않는다.
supportFragmentManager vs childFragmentManager vs parentFragmentManager
// childFragmentManager 내(프래그먼트A)가 가지고있는. A프래그에서 B프래그를 붙일 때 사용한다.
// 위와 같은 상황에서 fragmentManager을 사용하면, 이건 A의 매니저가 아니라 액티비티의 매니저를 갖다쓰는거기 떄문에 안좋음.
// 결론적으로 프래그먼트에서 프래그먼트 띄울 때는 childFragmentManager를 사용하자.
// parentFragmentManager -> 라이브러리 버전이 낮으면 안나온다. 그럼 무슨라이브러리?? Android Support Fragment 1.1.0부터 생겼다. 근데 ktx를 포함하면 얘는 기본임.
프래그먼트와 액티비티 직접 X (재사용성이 낮으므로)
-> 그래서 프래그먼트 안에 인터페이스를 만들어서 한다.
프래그먼트에서 액티비티를 사용시
fragment의 onAttach() ~ Detach 사이에는 activity가 존재한다!!
주의점들
1. public default 생성자 꼭 그대로 냅두기. 유지!!
2. fragment 재생성..
3. fragment lifecycle vs fragment viewlifecycle 다름을 알기 -> 뷰만 없어졌을 때 앱이 죽는 이슈가 있을 수 있다.
onCreate - onCreateView - onDestoryView - onDestroy 순서
onCreateView와 onDestoryView는 여러번 탈 수 있음.
'개발 > Android' 카테고리의 다른 글
requireActivity()와 getActivity() (0) | 2020.08.06 |
---|---|
Activity에서 Fragment로 값 전달하기 (0) | 2020.08.06 |
클래스 레이아웃, 클래스 내용의 순서 (0) | 2020.08.06 |
Activity에서 Activity로 값 전달하기 (0) | 2020.08.06 |