티스토리 뷰
이전까지 완료한 부분은 Drawer Layout 으로 안드로이드 기본 프로젝트를 생성하고 Github에 연동한 후 전체 구조를 어떻게 짤지 구성하는 것 까지 였습니다.
오늘은 전체 골격 구성까지 즉, 앞서 말씀드렸듯이 메인 액티비티인 TimeManager 액티비티에 넣을 프래그먼트를 생성하도록 하겠습니다.
완성이 되고 나면 우선 이런 모양이 나오게 됩니다.
왼쪽의 Drawer에서는
Home, Day Record, Statistics 세 탭과
구현 가능성으로 남겨놓은 Share, About이 있습니다.
오른쪽은 Home 화면으로
TextView 하나가 기본적으로 들어가 있습니다.
왼쪽은 Day Record 프래그먼트 화면이고,
간단한 리스트 뷰가 들어가 있지만 이 부분은 나중에
설명하도록 하겠습니다
오른쪽은 마지막으로 Statistics 프래그먼트 화면이고
현재 아무 것도 들어가 있지 않은 상황입니다.
그 외 나머지 부분은 (오른쪽 아래 메모 버튼, 위의 버튼들) 모두 기본적으로 제공해주는 것으로 우선은 남겨 놓겠습니다.
프래그먼트를 사용하는 것은 생각보다 간단합니다.
모든 프래그먼트가 같은 특징을 가지므로 Home Fragment를 설명하겠습니다.
HomeFragment.java
17행을 보시면 Fragment를 extends 시키고 있는데 굳이 android.support.v4.app.Fragment를 붙인 이유는 v4가 아니면 프래그먼트로 인식이 안되더군요..
20행에서는 메인 액티비티에서 프래그먼트 인스턴스를 생성하기 위해 인스턴스를 만들어 리턴해주는 newInstance()함수를 만듭니다.
맨 아래는 프래그먼트를 확장하면 필수적으로 구현해야 하는 메서드, 즉 뷰를 그려주는 onCreateView 함수이고
fragment_main이라는 레이아웃을 인플레이트하는 것을 볼 수 있습니다.
fragment_main.xml
보시는 것처럼 fragment_main.xml은 위의 에뮬레이터에서 보았던 TextView와 텍스트 Hello World!를 가지고 있습니다.
이 부분을 메인 액티비티에서는 어떻게 사용하는지 아래에 나와있습니다.
먼저 OnCreate함수 안에서 fragment 인스턴스들을 각각 가져옵니다.
그 다음 59~61째줄에서 실행할 프래그먼트로 HomeFragment를 지정해줌으로써 시작할 때에는 fragment_main에 있는 Hello World!가 처음에 뜨게 될 겁니다.
Drawer의 선택에 대한 이벤트를 관리하는 함수가 바로 onNavigationItemSelected함수입니다. 이것 역시 기본적으로 구현되어 있기 때문에
자신의 레이아웃에 맞춰서 레이아웃만 바꾸어 주면 됩니다.
현재 구현한 프래그먼트 home, day_record, statistics는 이동 가능하게 해 놓았고,
share와 about을 누를 때는 아무런 일도 일어나지 않는 것을 알 수 있습니다.
현재까지 구현된 코드는 모두 GitHub에 공유되어 있으니 자세한 코드를 확인하고 싶으시면 여기서 보실 수 있습니다.
https://github.com/HyeonjuPark/TimeManager.git
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- React Native
- 쉽게 말하는법
- 시간 관리
- multiDex issue
- 소름돋는필력
- 스크럼
- MVP
- Android
- 애드 캣멀
- git ssh 연동
- git 실수
- 안드로이드
- patch-packages
- 창의성을 지휘하라
- node.js
- egghead
- release build issue
- go
- 그리고 상상력
- 이미지 여백주기
- 좋은 습관이란
- 공존이 필요해요
- 소프트웨어 공학
- 구독료 계산기
- iterms
- 아키텍처
- gradle
- 최은영작가님
- 이미지 일괄 변경
- retrofit
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함