무단 도용 및 복제, 사용 저작권 안내
수업 목적 외에 모든 교안 자료를 무단으로 도용 (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을 통해 좌측에서 나타나는 메뉴를 구성할 수 있다.