如果在一个项目中使用Slidemenu侧滑功能,那么一般会让BaseActivity来继承SlidmenuFragmentActivity然后在让需要侧滑的界面继承BaseActivty,具体操作如下:
BaseActivity.class
public class BaseActivity extends SlidingFragmentActivity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setBehindContentView(new View(this));
getSlidingMenu().setSlidingEnabled(false);
}
}
MainTabActivity.<span style="font-family:微软雅黑;">class
</span><pre name="code" class="java">public class MainTabActivity extends BaseActivity implements View.OnClickListener
{
private SlidingMenu.CanvasTransformer mTransformer;
//定义侧滑对象
private SlidingMenu slidingMenu;
/**
* 侧滑菜单页布局
*/
private View mSidingView;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
//设置滑动菜单的xml页面
setBehindContentView(R.layout.sliding_menu_activity);
setContentView(R.layout.activity_main_tab);
initSlidingMenu();
}
/**
* 初始化滑动菜单并设定菜单属性
*/
private void initSlidingMenu()
{
// 设置滑动菜单视图
setBehindContentView(R.layout.activity_main_tab);
// 设置滑动菜单的属性值
slidingMenu = getSlidingMenu();
//为侧滑菜单添加布局
slidingMenu.setMenu(mSidingView);
//true 开启滑动; false 禁止滑动
slidingMenu.setSlidingEnabled(true);
//设置阴影宽度
slidingMenu.setShadowWidthRes(R.dimen.shadow_width);
//设置侧滑菜单展开后距离屏幕最右边的距离
slidingMenu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
slidingMenu.setFadeDegree(0.35f);
//控制SlidingMenu是否可以打开滑动的手势。选项是TOUCHMODE_MARGIN(边缘)、TOUCHMODE_FULLSCREEN(全屏)或TOUCHMODE_NONE(取消打开)
slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);
//设置SlidingMenu滚动规模
slidingMenu.setBehindScrollScale(1.0f);
slidingMenu.setBehindCanvasTransformer(mTransformer);
setSlidingActionBarEnabled(true);
}
}
在此处应特别注意的几点,就是
1.在BaseActivity中的onCreate()中有一句代码:getSlidingMenu().setSlidingEnabled(false),设置侧滑关闭;
在需要侧滑的页面中再次调用getSlidingMenu().setSlidingEnabled(true);开启侧滑,不然所有的页面都会有侧滑现象的
2.slidingMenu.setMenu(mSidingView);是必须加的不然会不能响应点击事件