Search
📘

12강. DrawerLayout

무단 도용 및 복제, 사용 저작권 안내 수업 목적 외에 모든 교안 자료를 무단으로 도용 (URL 연결, 복제, 공유), 불법으로 복사하여 배포하는 것을 금지합니다. 꼭 지켜주세요!

1. DrawerLayout

좌측 상단의 네비게이션 버튼을 누르면 좌측에서 메뉴가 나타나는 UI 이다.
대부분이 구현되어 있으므로 필요한 부분만 변경해서 사용한다.
Navigation Drawer Activity를 선택한다.

2. 구조

activity_main.xml<include>nav_view로 구성되어 있다.
<include>는 다른 layout을 포함시키는 요소인데 프래그먼트가 교체되는 화면 부분에 해당한다.
nav_view는 좌측에서 나타나는 메뉴에 해당한다.

3. nav_view

좌측에서 나타는 메뉴를 관리하는 View 이다.

4. activity_main.xml 의 <include>

<include> 는 다른 layout 파일을 포함시키는 요소이다.
여기에서는 app_bar_main.xml 을 포함하고 있다.
이 부분에는 상단에 툴바가 설정되어 있고 하단에는 FloatingActionButton이 있다.
그리고 중간에 <include>가 있는데 이 부분이 프래그먼트를 표시하는 부분이 된다

5. app_bar_main.xml 의 <include>

app_bar_main.xml 의 include는 content_main.xml이 설정되어 있다.
이 부분에는 fragment가 존재하며 이 fragment 에 다른 Fragment를 표시하여 화면을 교채하는 역할을 하게 된다.

6. Controller 설정

DrawerLayout 을 통해 교체될 Fragment를 관리하고 각 Fragment 교체 처리를 해주는 Controller가 제공된다.
전에는 Controller가 없어서 개발자가 직접 구현을 해야 했지만 지금은 이 Controller에 Fragment 들만 셋팅해주면 된다.

7. nav_host_fragment

content_main.xml 에 있는 Fragment 이다.
이 Fragment는 Controller의 역할을 해주는데 여기에 navGraph 라는 속성이 있다.
이 속성에는 Controller 가 관리할 Fragment를 등록해 놓은 xml 을 지정한다.

8. mobile_navigation.xml

Controller가 관리할 Fragment 들을 등록하는 xml 파일이다.
이 파일에 Fragment를 등록할 때 설정하는 id 가 매우 중요하다.
좌측에서 나타나는 메뉴를 클릭했을 때 클릭한 메뉴의 id와 동일한 id가 셋팅되어 있는 fragment가 화면에 나타나게 된다.
이 부분은 모두 설정되어 있기 때문에 개발자는 Fragment를 등록할 때 id를 메뉴의 id와 동일하게만 설정해주면 된다.

9. 학습 정리

정리
DrawerLayout을 통해 좌측에서 나타나는 메뉴를 구성할 수 있다.