Fragment에서 설정해야 한다.
1. 메뉴 아이템 추가
- 프로젝트의 res -> 마우스 우클릭 -> new -> Android Resource File -> type에서 메뉴 선택
- 추가된 메뉴 레이아웃에 메뉴 아이템 추가
2. 프래그먼트에 코드 추가
- 생성자 쪽에 setHasOptionsMenu(true) 추가
- 다음의 함수 오버라이드
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
super.onCreateOptionsMenu(menu, inflater)
//R.menu.menu는 위에서 추가한 menu 레이아웃
inflater.inflate(R.menu.menu,menu)
}
3. 옵션 아이템 추가 함수 오버라이드
override fun onOptionsItemSelected(item: MenuItem): Boolean {
//할일 또는 기본항목 리턴
return 할일 || super.onOptionsItemSelected(item)
}
4. 옵션 선택을 통한 페이지 이동
- 주로 옵션선택시 프래그먼트 이동을 하게 되므로 다음의 작업을 해야함.
- 위에서 추가한 menu.xml -> menuitem의 id를 navigation.xml의 이동할 fragment의 아이디와 동일하게 설정한다.
- navigation.xml 에 추가한 fragment들의 아이디를 확인한다.
예) navigation.xml 에 추가한 fragment들 중, 옵션을 클릭하였을때 이동할 fragment아이디가 frag1이라면,
menu.xml의 menuitem 아이디도 동일하게 frag1로 설절해야 한다.
- 3. 에서 오버라이드한 함수를 수정한다.
override fun onOptionsItemSelected(item: MenuItem): Boolean {
return NavigationUI.onNavDestinationSelected(item,requireView().findNavController()) || super.onOptionsItemSelected(item)
}
'Android' 카테고리의 다른 글
Java 에서 RxJava 사용하기 (이벤트 수신) (0) | 2022.06.22 |
---|---|
drawerlayout 및 navigationview 사용 (0) | 2022.06.13 |
상단 Navigation 의 Up사용하기 (뒤로가기) (0) | 2022.06.13 |
RecyclerView 기초 (0) | 2022.06.09 |
Interface를 통한 Activity-Fragment간 통신 (0) | 2022.06.08 |