안드로이드에서 google app 들에서 사용하는 왼쪽 슬라이드 메뉴 만드는 법 / Navigation Drawer Menu
UPDATED:
이제 android library 에서 제공한다. "간단한 Material design 경험하기 > 왼쪽 메뉴 넣기"를 이용하자.
------------------------------------
기존에도 open source 로 슬라이드 메뉴를 구현하는 법이 많이 나와있다. 그러나 여기서는 ActionBarDrawerToggle 을 이용하는 source 를 설명할 것이다.
구현
ref. 1, ref. 2 에서 source code 도 제공하니 한 번 확인 해 보자.Sliding menu 를 구현하기 위해서는 할일이 많다. 아래 5가지 정도는 해야 한다.
- Create a Drawer Layout
- Initialize the Drawer List
- Handle Navigation Click Events
- Listen for Open and Close Events
- Open and Close with the App Icon
대략적으로 아래 그림으로 확인할 수 있다. (그림은 "새창에서 열기" 로 열자)
SherlockActionBar 에서 ActionBarDrawerToggle 사용하기
처음에 단순히 casting 을 시도했다.
public boolean onOptionsItemSelected(MenuItem item) { if (mDrawerToggle.onOptionsItemSelected((android.view.MenuItem) item)) { return true; } ...
그러나, 아래처럼 CastException 이 발생했다.
java.lang.ClassCastException: com.actionbarsherlock.internal.view.menu.MenuItemWrapper cannot be cast to android.view.MenuItem
그래서 자료를 좀 찾아봤다.
이 comment 에서 SherlockActionBar 에서 ActionBarDrawerToggle 을 어떻게 사용할 수 있는지 알려준다.
방법은 com.actionbarsherlock.app 에 SherlockActionBarDrawerToggle.java 를 하나 만들어서 ActionBarDrawerToggle 대신에 사용하는 것이다. SherlockActionBarDrawerToggle.java 의 source 는 아래에 있다.
Reference
- Creating a Navigation Drawer | Android Developers
- Android Sliding Menu using Navigation Drawer, November 13, 2013
댓글 없음:
댓글 쓰기