1. Fragment란?
- Activity 내의 작은 화면 조각.
- 일반적으로 여러 화면을 가지고 있는 애플리케이션은 여러 Activity를 가지고 있는 애플리케이션을 의미한다.
- Activity는 독립된 실행단위로 메모리를 많이 소모하는데 독립된 실행단위가 아닌 화면만 필요한 경우 Activity보단 Fragment를 사용하는 것이 효율적이다.
- Fragment는 Activity내의 작은 화면의 조각으로 Activity의 화면을 여러 영역으로 나누어 관리하는 목적으로 사용되며, 각 영역을 관리하는 클래스라고 보면 된다.
- Fragment는 안드로이드 5.0에서 추가되었지만 하위 버전에서도 사용할 수 있도록 설계되어 있다.
2. 주요 메서드
- add : Fragment를 지정된 레이아웃에 추가한다.
- replace : 지정된 레이아웃에 설정되어 있는 Fragment를 제거하고 새로운 Fragment를 추가한다.
3. AddToBackStack
- 안드로이드에서 Back Button은 현재 액티비티를 종료하는 기능이다.
- Fragment는 Activity가 아니므로 Back Button으로 제거할 수 없는데 AddToBackStack메서드를 통해 Back Stack에 포함할 경우 BackButton으로 제거할 수 있다.
- 이를 통해 마치 이전 화면으로 돌아가는 듯한 효과를 줄수 있다.
class MainActivity : AppCompatActivity() {
// 1. 사용할 프래그먼트들의 객체를 생성
var first = FirstFragment()
var second = SecondFragment()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// 2. 첫번째 프래그먼트 세팅.
button.setOnClickListener { view ->
// 2. 하위버전까지 지원하려면 supportFragmnetManager.
var tran = supportFragmentManager.beginTransaction()
// 3. id가 container인 레이아웃에 first라는 프래그먼트를 넣는다.
tran.add(R.id.container, first)
// 4. BackButton으로 프래그먼트를 제거할 수 있도록 적용.
tran.addToBackStack(null)
tran.commit()
}
// 3. 두번째 프래그먼트 세팅.
button2.setOnClickListener { view ->
var tran = supportFragmentManager.beginTransaction()
tran.replace(R.id.container, second)
tran.addToBackStack(null)
tran.commit()
}
}
}
'Deperecated > Android_강의' 카테고리의 다른 글
안드로이드 - ListFragment (0) | 2020.02.19 |
---|---|
안드로이드 - Activity Controller (0) | 2020.02.19 |
안드로이드 - Fragment - IPC (0) | 2020.02.19 |
안드로이드 - 서비스 (0) | 2020.02.19 |
안드로이드 - 시스템 메세지 (0) | 2020.02.19 |