MainActivity 에 interface 구현, fragment 에서 구현함수 호출 > Kotlin

본문 바로가기

사이트 내 전체검색

Kotlin

MainActivity 에 interface 구현, fragment 에서 구현함수 호출

작성일 20-07-07 14:26

페이지 정보

작성자sbLAB 조회 3,640회 댓글 0건

본문

프래그먼트에서 메인엑티비티 수준의 함수에 접근해야 할때.. 공용 인터페이스 만들어서 메인엑티비티에 상속 -> 프래그먼트에서 인터페이스를 통해 접근


[인터페이스]

/**
 *네비게이션바 -> Drawer 활성/비활성 interface
 * MainActivity 에서 이 interface 상속
 */

interface DrawerLocker {
    fun setDrawerLocked(shouldLockBoolean)
}


[메인엑티비티]
class MainActivity  : AppCompatActivity(), DrawerLocker {
......

    /** 네비게이션 Drawer 활성/비활성 설정
     *  (activity as DrawerLocker).setDrawerLocked(false)
     */
    override fun setDrawerLocked(enabled:Boolean) {
        if (enabled) {
            drawer_layout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
            toolbar.navigationIcon = null//햄버거아이콘 숨김
        } else {
            drawer_layout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
        }
    }
......
}

[프래그먼트에서 호출]
    override fun onViewCreated(viewViewsavedInstanceStateBundle?) {
        super.onViewCreated(view, savedInstanceState)
        (activity as DrawerLocker).setDrawerLocked(true//네비게이션바 Drawer 잠금
    }

    override fun onStop() {
        super.onStop()
        (activity as DrawerLocker).setDrawerLocked(false//네비게이션바 Drawer 잠그지않음
    }
 



댓글목록

등록된 댓글이 없습니다.

Copyright © 소유하신 도메인. All rights reserved.
PC 버전으로 보기