DrawerLayout
안드로이드의 새로운 레이아웃인 DrawerLayout 이라는게 있다.
android.support.v4.widget 에 포함되어 있다.
상단은 DrawerLayout으로 감싸져 있고, FrameLayout에는 실제 컨텐츠를 넣어주면 된다.
public class MainFragment extends Activity { private ActionBarDrawerToggle _drawerToggle; private DrawerLayout _drawerLayout; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_viewpager); _drawerLayout = (DrawerLayout)findViewById(R.id.drawer_layout); final ActionBar actionbar = getActionBar(); actionbar.setDisplayHomeAsUpEnabled(true); actionbar.setHomeButtonEnabled(true); //ActionBarDrawerToggle Params /** * 1. Activity * 2. DrawerLayout * 3. Drawer Icon (버튼 이미지) * 4. String resource * 5. String resource */ _drawerToggle = new ActionBarDrawerToggle(this, _drawerLayout, R.drawable.ic_drawer, 0, 0){ @Override public void onDrawerClosed(View drawerView) { invalidateOptionsMenu(); } @Override public void onDrawerOpened(View drawerView) { invalidateOptionsMenu(); } }; _drawerLayout.setDrawerListener(_drawerToggle); } @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.actionbar_menu, menu); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { if(_drawerToggle.onOptionsItemSelected(item)){ return true; } return super.onOptionsItemSelected(item); } @Override protected void onPostCreate(Bundle savedInstanceState) { super.onPostCreate(savedInstanceState); _drawerToggle.syncState(); } @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); _drawerToggle.onConfigurationChanged(newConfig); } }
'안드로이드' 카테고리의 다른 글
Bitmap Round (0) | 2014.06.05 |
---|---|
ViewPager (0) | 2014.05.15 |
TableRow를 동적으로 만들기 (0) | 2014.04.23 |
안드로이드 Asset 의 파일 가져오기 (0) | 2014.02.20 |
안드로이드에서 SWF 파일 재생하기 (0) | 2014.01.27 |