안드로이드 액티비티 & 프래그먼트.
액티비티 : 하나의 뷰(xml)에 하나의 액티비티만 사용.
프래그먼트 : 하나의 액티비티에 다수의 프래그먼트 사용.{
.add() tag : 나중에 프래그먼트를 검색하기 위한 선택적 태그 이름. (findFragmentByTag( tag ))
.replace() : 기존의 프래그먼트를 제거하고 새로운 프래그먼트로 대체.
.addToBackStack() name : 트랜잭션이 커밋 된 후에 기억되고 나중에 스택에서 꺼내 졌을때 트랜잭션을 되돌릴 것을 의미.
findFragmentByTag는 add / replace 메서드 또는 addToBackStack 메서드로 추가 된 태그를 검색합니다.
}
프래그먼트
/**
* add : 프래그먼트를 추가 합니다. 프래그먼트는 선택적으로 뷰를 가질 수 있습니다.
*id: Int, : 레이아웃 지정. (xml)
* fragment: Fragment, : 화면에 보여질 프래그먼트.
* tag: String? = null, : 프래그먼트 태그 지정.(findFragmentByTag (tag) 로 검색)
* backStackCheck: Boolean = false : 트랜잭션 커밋 후 스택에 저장된 후 상위 프래그먼트가 제거되면 스택에 저장된
* 프래그먼트를 불러온다.
*
* findFragmentByTag는 add / replace 메서드 또는 addToBackStack 메서드로 추가 된 태그를 검색합니다.
*/
protected fun addFragment(id: Int, fragment: Fragment, tag: String? = null, backStackCheck: Boolean = false) {
if (backStackCheck) {
supportFragmentManager
.beginTransaction()
.add(id, fragment, tag)
.addToBackStack(tag)
.commit()
} else {
supportFragmentManager
.beginTransaction()
.add(id, fragment, tag)
.commit()
}
}
/**
* replace : 기존의 프래그먼트를 제거하고 새로운 프래그먼트로 대체 합니다. 프래그먼트는 선택적으로 뷰를 가질 수 있습니다.
*id: Int, : 레이아웃 지정. (xml)
* fragment: Fragment, : 화면에 보여질 프래그먼트.
* tag: String? = null, : 프래그먼트 태그 지정.(findFragmentByTag (tag) 로 검색)
* backStackCheck: Boolean = false : 트랜잭션 커밋 후 스택에 저장된 후 상위 프래그먼트가 제거되면 스택에 저장된
* 프래그먼트를 불러온다.
*
* findFragmentByTag는 add / replace 메서드 또는 addToBackStack 메서드로 추가 된 태그를 검색합니다.
*/
protected fun replaceFragment(id: Int, fragment: Fragment, tag: String? = null, backStackCheck: Boolean = false) {
if (backStackCheck) {
supportFragmentManager
.beginTransaction()
.replace(id, fragment, tag)
.addToBackStack(tag)
.commit()
} else {
supportFragmentManager
.beginTransaction()
.replace(id, fragment, tag)
.commit()
}
}
'Android > study' 카테고리의 다른 글
MVP 패턴 (0) | 2019.04.25 |
---|---|
안드로이드 코틀린 프로젝트 디펜던시 (0) | 2019.01.25 |
레트로핏, okhttp (0) | 2018.08.27 |
RxJava (0) | 2018.07.30 |