Deperecated/Android_강의

안드로이드 - Fragment

누알라리 2020. 2. 19. 13:59
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