[컴][안드로이드] 왼쪽 슬라이딩 메뉴 구현 예제, Navigation Drawer


안드로이드에서 google app 들에서 사용하는 왼쪽 슬라이드 메뉴 만드는 법 / Navigation Drawer Menu


UPDATED:

이제 android library 에서 제공한다. "간단한 Material design 경험하기 > 왼쪽 메뉴 넣기"를 이용하자.


------------------------------------


기존에도 open source 로 슬라이드 메뉴를 구현하는 법이 많이 나와있다. 그러나 여기서는 ActionBarDrawerToggle 을 이용하는 source 를 설명할 것이다.


구현

ref. 1, ref. 2 에서 source code 도 제공하니 한 번 확인 해 보자.









Sliding menu 를 구현하기 위해서는 할일이 많다. 아래 5가지 정도는 해야 한다.

  1. Create a Drawer Layout
  2. Initialize the Drawer List
  3. Handle Navigation Click Events
  4. Listen for Open and Close Events
  5. 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

  1. Creating a Navigation Drawer | Android Developers
  2. Android Sliding Menu using Navigation Drawer, November 13, 2013



댓글 없음:

댓글 쓰기