재우니의 블로그

 

ActionBarActivity 가 롤리팝 버전부터 지원을 하지 않고 AppCompatActivity 를 상속 받아 사용해야 합니다.

 

public class MainActivity : AppCompatActivity //ActionBarActivity
{
}

 

기존에 ActionBarActivity 을 사용하게 되면 아래 함수 중에 SetDrawerListener() 함수가 존재하며, 바인딩 하면 햄버거? 아이콘이 좌측에 나오도록 기술이 가능했는데요.

 

mDrawerToggle = new MyActionBarDrawerToggle(
                this,                           //Host Activity
                mDrawerLayout,                  //DrawerLayout
                Resource.String.openDrawer,     //Opened Message
                Resource.String.closeDrawer     //Closed Message
            );

            mDrawerLayout.SetDrawerListener(mDrawerToggle);
            SupportActionBar.SetHomeButtonEnabled(true);
            SupportActionBar.SetDisplayShowTitleEnabled(true);
            mDrawerToggle.SyncState();

 

AppCompatActivity 로 작업을 하게 되면, 아래 처럼 SetDrawerListener() 함수 대신에 AddDrawerListener() 함수로 대체를 해야 하며, SetDisplayHomeAsUpEnabled(true); 함수를 추가로 호출해야 기존과 동일하게 작동되는것을 확인할 수 있습니다.

 

mDrawerToggle = new MyActionBarDrawerToggle(
                this,                           //Host Activity
                mDrawerLayout,                  //DrawerLayout
                Resource.String.openDrawer,     //Opened Message
                Resource.String.closeDrawer     //Closed Message
            );

            mDrawerLayout.AddDrawerListener(mDrawerToggle); //setDrawerListener is deprecated
            SupportActionBar.SetHomeButtonEnabled(true);
            SupportActionBar.SetDisplayShowTitleEnabled(true);
            SupportActionBar.SetDisplayHomeAsUpEnabled(true); //꼭 사용해삼.!!! 함버거 마크 활성화 할려면~

            mDrawerToggle.SyncState();

 

참고 자료 :

http://apphappy.tistory.com/10

https://forums.xamarin.com/discussion/60065/no-hamburger-to-arrow-animation-or-icon-showing-on-drawer