ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, mDrawerLayout, mToolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close) {
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
//获取mDrawerLayout中的第一个子布局,也就是布局中的RelativeLayout
//获取抽屉的view
View mContent = mDrawerLayout.getChildAt(0);
float scale = 1 - slideOffset;
float endScale = 0.8f + scale * 0.2f;
float startScale = 1 - 0.3f * scale;
//设置左边菜单滑动后的占据屏幕大小
drawerView.setScaleX(startScale);
drawerView.setScaleY(startScale);
//设置菜单透明度
drawerView.setAlpha(0.6f + 0.4f * (1 - scale));
//设置内容界面水平和垂直方向偏转量
//在滑动时内容界面的宽度为 屏幕宽度减去菜单界面所占宽度
mContent.setTranslationX(drawerView.getMeasuredWidth() * (1 - scale));
//设置内容界面操作无效(比如有button就会点击无效)
mContent.invalidate();
//设置右边菜单滑动后的占据屏幕大小
mContent.setScaleX(endScale);
mContent.setScaleY(endScale);
}
};
toggle.syncState();
mDrawerLayout.addDrawerListener(toggle);
//可以加效果
switch (event) {
case Snackbar.Callback.DISMISS_EVENT_SWIPE:
case Snackbar.Callback.DISMISS_EVENT_CONSECUTIVE:
case Snackbar.Callback.DISMISS_EVENT_MANUAL:
case Snackbar.Callback.DISMISS_EVENT_TIMEOUT:
//TODO 网络操作
Toast.makeText(MainActivity.this, "删除成功", Toast.LENGTH_SHORT).show();
break;
case Snackbar.Callback.DISMISS_EVENT_ACTION:
Toast.makeText(MainActivity.this, "撤销了删除操作", Toast.LENGTH_SHORT).show();
break;
}
网友评论