3. 학습목표
이 학습을 마치면…
-ActionBar를 사용하여 구글이 권장하는 UI설계를 할 수 있습니다.
!
-오픈소스나 기타 외부의 라이브러리를 가져다 사용할 수 있습니다.
!
-ActionBarCompat을 사용하여 허니콤 이하 버젼에서도 ActionBar를
사용할 수 있습니다.
!
-ActionBarCompat을 사용하여 Navigation을 만들 수 있습니다.
21. 이전 버젼에서 사용하기 위해서는…
허니콤 이전 버젼에서 액션바를 사용하기 위해서
주로 Sherlock Action Bar나 Android Support Library를 사용합니다.
!
이 예제에서는 Android Support Library에 있는
ActionbarCompat을 사용합니다.
43. •
새로운 안드로이드 디자인 패턴인
NavigationDrawer(Side Navigation)을 구현을
할때에는 여러 라이브러리를 사용합니다.
•
gui-sliding-sidebar (walkingice)
•
android-sliding-menu-demo (gitgrimbo)
•
ActionBar Sherlock
•
등등
44. 하지만 이번에는 ActionBar Compat을
사용하여 Navigation을 만들어보겠습니다.
ActionBar Sherlock예제는
http://www.slideshare.net/arload/next-android-5-actionbar-sidenavigation
에서 보실수 있습니다. (큰 차이는 없습니다…)
45. 네비게이션을 쉽게 적용하기 위한 별도의 라이브러리를 사용합니다.
https://github.com/johnkil/SideNavigation
에서 라이브러리를 다운받아 압축을 풀어줍니다.
53. 네비게이션에서 사용될 메뉴의 종류를 편집합니다.
!
프로젝트에서 res - menu에
side_menu.xml(이름은 맘대로) 파일을 생성 해 편집합니다.
id와 title icon등의 속성들을 입력합니다.
54. 프로젝트의 res - layout에서 네비게이션이 들어갈 액티비티의
레이아웃을 편집해서
RelativeLayout의 맨 마지막 부분에 사이드 네비게이션을 정의합니다.
<com.devspark.sidenavigation.SideNavigationView
android:id="@+id/side_navigation_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
57. 다시 소스코드로 돌아와서
import com.devspark.sidenavigation.ISideNavigationCallback;
import com.devspark.sidenavigation.SideNavigationView;
import com.devspark.sidenavigation.SideNavigationView.Mode;
를 불러옵니다.
58. 홈버튼(화면 좌상의 아이콘)을 누르면 네비게이션이 켜지도록 합니다.
이를 위해 setHomeButtonEnabled(true);setDisplayHomeAsUpEnabled(true)을
사용하여 홈버튼을 활성화 시킵니다.
!
ActionBar Compat에서는 getSupportActionBar()를 사용합니다.
59. findViewById로 레이아웃에서 설정한 Id를 입력하고
setMenuItems에는 item을 편집한 menu의 xml 파일을 불러옵니다.
setMode는 화면 왼쪽, 오른쪽에서 사이드 네비게이션이 나오도록 합니다.
60. 기존에 액션바의 이벤트를 받던 onOptionsItemSelected()에
android.R.id.home을 분기로 추가하고
toggleMenu()를 해서 네비게이션이 나오도록 합니다.
61. 사이드 네비게이션의 이벤트를 받아오기 위해 콜백함수를 만듭니다.
적용은 앞 슬라이드에 나왔던
sideNavigationView.setMenuClickCallback(sideNavigationCallback);
에 적용합니다.