안드로이드 액티비티 & 프래그먼트.



액티비티 : 하나의 뷰(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

+ Recent posts