SlidingMenu不是作者写的自定义View,而是引荐大神们所写好了的开源框架!那么,该项目在github网站上可以下载:https://github.com/jfeinstein10/SlidingMenu;地址就贴在这了,大家去下载吧!!
那么,下载完了之后,进行解压,你将会看到如图1-1:
1-1
第一步:将library项目导入到Eclipse当中,作为你的项目的依赖库。
第二步:右键点击你的项目,选择 Properties --> Android ,如图1-2:
1-2
第三步:在你的项目中使用SlidingMenu依赖库:
1、创建一个类(M-SlidingMenuActivity)继承SlidingFragmentActivity,在该类当中:
2、在该类当中的onCreate()方法当中:
public class MainActivity extends SlidingFragmentActivity {
private SlidingMenu slidingMenu;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.content);
setBehindContentView(R.layout.menu_frame);
slidingMenu = getSlidingMenu();//得到SlidingMenu对象
slidingMenu.setMode(SlidingMenu.LEFT);//设置左滑菜单
slidingMenu.setBehindOffsetRes(R.dimen.slidingmenu_offset);//SlidingMenu划出时主页面显示的残剩宽度
slidingMenu.setShadowDrawable(R.drawable.shadow);//设置倒影
slidingMenu.setShadowWidthRes(R.dimen.shadow_width);//当前倒影的宽度
slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);//设置滑动的屏幕局限,该设置为全屏区域都可以滑动
slidingMenu.setBehindWidth(400);//设置SlidingMenu菜单的宽度
slidingMenu.setFadeDegree(0.35f);//SlidingMenu滑动时的渐变程度
slidingMenu.attachToActivity(this,SlidingMenu.SLIDING_CONTENT);//使SlidingMenu附加在Activity上
slidingMenu.setMenu(R.layout.activity_main);//设置menu的布局文件
slidingMenu.toggle();//动态封闭SlidingMenu或开启SlidingMenu
slidingMenu.showMenu();//显示SlidingMenu
slidingMenu.showContent();//显示内容
slidingMenu.setOnOpenedListener(new OnOpenedListener(){//当SlidingMenu打开时的监听事件
@Override
public void onOpened() {
}
});
slidingMenu.setOnCloseListener(new OnCloseListener(){//当SlidingMenu封闭时事务
@Override
public void onClose() {
}
});
slidingMenu.setOnClosedListener(new OnClosedListener(){//当SlidingMenu封闭后事务
@Override
public void onClosed() {
}
});
//------------------以上只是设置了左滑菜单栏,那么接下来我给大家分享如何设置右侧滑栏---------------
slidingMenu.setMode(SlidingMenu.LEFT_RIGHT);
slidingMenu.setSecondaryMenu(R.drawable.home2);//设置右侧菜单
slidingMenu.setSecondaryShadowDrawable(R.drawable.home2);//设置右侧菜单暗影
//---------------------------------------------------------------------------
//替换
MenuFragment menuFragment = new MenuFragment();
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.menu, menuFragment, "MENU")
.commit();
//替换
HomeFragment homeFragment = new HomeFragment();
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.content_frame, homeFragment, "HOME")
.commit();
}
//用于回调
public MenuFragment getMenuFragment() {
return (MenuFragment) getSupportFragmentManager().findFragmentByTag("MENU");
}
//用于回调
public HomeFragment getHomeFragment() {
return (HomeFragment) getSupportFragmentManager().findFragmentByTag("HOME");
}
}