티스토리 뷰

이전까지 완료한 부분은 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


댓글