종종 사용하던 어플을 보면, 왼쪽 상단에 햄버거모양으로 되어 있는 아이콘을 보실 수 있습니다.

이 아이콘을 클릭하면 왼쪽에서 오른쪽으로 작은 창이 열리면서, 여러 기능을 사용할 수 있는데요.

이를, 네비게이션 뷰라고 칭합니다.

 

편하게도 네비게이션 뷰의 전체 틀은 구글에서 제공해주고 있습니다.

에뮬레이터로 실행을 시켜보시면, 밑의 플로팅 버튼과 네비게이션 뷰를 볼 수 있습니다. 일단 이 글에서 플로팅 버튼을 다루는 게 아니기 때문에 mainActivity에서 플로팅버튼 관련 코드는 삭제해도 무방합니다 ^^


layout 에 보시면 총 4개의 파일을 볼 수 있는데요.

activity_main, app_bar_main, content_main, nav_header_main

근데 너무 많아서 관리하기가 어려워요. 그래서 activity_main에 보시면 <include ~ 라고 된 부분이 있을거에요

이 부분은 app_bar_main이라는 xml을 담고 있네요? 그러면 app_bar_main을 가서 복사를 하시고

include부분에 붙여넣기를 해줍니다.

빨간색으로 된 부분이 추가된 부분이고, 이제 layout에서 app_bar_main은 삭제하구요.

또 코드 안에 보시면 include가 하나 더 있죠? 

이번에는 content_main이라고 되어 있네요. 이 부분에 여러분이 작업을 하시면 되고 include는 지워줍시다. 

(보통 FrameLayout을 추가해서 프래그먼트로 사용하죠)


다시 네비게이션 뷰를 펼쳐보시면, 윗 부분에는 프로필, 아래에는 기능이 있을 거에요.

프로필 부분은 nav_header_main.xml에서 여러분이 원하는대로 변경하실 수 있구요.

여기서는 밑의 기능 부분을 보겠습니다.

기능은 아마 네비게이션 뷰를 만들면서 구글에서 menu파일을 만들어 주었을 거에요. 그 안에 보시면 activity_main_drawer.xml이 있을겁니다.

여기서 다른 부분은 그냥 item만 여러분이 원하시는대로 변경하시고, 맨 위에 checkableBehavior가 있을 거에요. 이 부분을 저대로 두고 실행을 시켜보고 기능을 눌러보세요.

그러고 다시 네비게이션 뷰를 켜보세요. 그러면 포커싱이 내가 전에 누른걸로 포커싱이 맞춰지게 되죠?

만약에 포커싱을 주고 싶지 않고, 다시 열었을 때 clear한 것을 원한다면, single -> none 으로 바꿔 주시면 됩니다.

 

또 각 아이콘에 기능을 넣고 싶다면

mainActivity에서 onNavigationItemSelected메소드를 수정해주면 되겠죠?