MainActivity 에 interface 구현, fragment 에서 구현함수 호출
페이지 정보
작성자 sbLAB 댓글 0건 조회 3,558회 작성일 20-07-07 14:26본문
프래그먼트에서 메인엑티비티 수준의 함수에 접근해야 할때.. 공용 인터페이스 만들어서 메인엑티비티에 상속 -> 프래그먼트에서 인터페이스를 통해 접근
[인터페이스]
/**
*네비게이션바 -> Drawer 활성/비활성 interface
* MainActivity 에서 이 interface 상속
*/
interface DrawerLocker {
fun setDrawerLocked(shouldLock: Boolean)
}
[메인엑티비티]
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(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
(activity as DrawerLocker).setDrawerLocked(true) //네비게이션바 Drawer 잠금
}
override fun onStop() {
super.onStop()
(activity as DrawerLocker).setDrawerLocked(false) //네비게이션바 Drawer 잠그지않음
}
- 이전글Removing an activity from the history stack 20.07.08
- 다음글Masked-Edittext android library 20.07.04
댓글목록
등록된 댓글이 없습니다.