github的地址是:https://github.com/jfeinstein10/SlidingMenu
可以根据上面的setup去做,一步一步,总会成功
下面使用在android studio 的ant编译环境和eclipse的编译环境里正常使用,里面的资源来自SlidingMenu开源项目。
1. checkout上面的sliding library和sample,ActionBarSherlock 的library。
分别为:
https://github.com/jfeinstein10/SlidingMenu
2. 新建一个项目,导入SlidingMenu 和 ActionBarSherlock 的library,主项目引用SlidingMenu-library和ActionBarSherlock -library两个工程,
此时 SlidingMenu 报错,
在SlidingMenu-library找到
SlidingFragmentActivity.java,然后把
extends FragmentActivity
改为
extends SherlockFragmentActivity
SlidingMenu-library:
主项目:
3.
SlidingMenu-library工程和主项目都要引用support-v4包,然后还有错误的话在工程上分别选android版本,基本上就没问题了。
4. 在主Activity的OnCreate里加入代码
private void initSlidingMenu() {
setBehindContentView(R.layout.menu_frame);
FragmentTransaction t = this.getSupportFragmentManager().beginTransaction();
FourthFragment mFrag = new FourthFragment();
t.replace(R.id.menu_frame, mFrag);
t.commit();
// customize the SlidingMenu
SlidingMenu sm = getSlidingMenu();
sm.setShadowWidthRes(R.dimen.shadow_width);
sm.setShadowDrawable(R.drawable.shadow);
sm.setBehindOffsetRes(R.dimen.slidingmenu_offset);
sm.setFadeDegree(0.35f);
sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
getSlidingMenu().setMode(SlidingMenu.LEFT);
getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
}
setBehindContentView(R.layout.menu_frame);
FragmentTransaction t = this.getSupportFragmentManager().beginTransaction();
FourthFragment mFrag = new FourthFragment();
t.replace(R.id.menu_frame, mFrag);
t.commit();
// customize the SlidingMenu
SlidingMenu sm = getSlidingMenu();
sm.setShadowWidthRes(R.dimen.shadow_width);
sm.setShadowDrawable(R.drawable.shadow);
sm.setBehindOffsetRes(R.dimen.slidingmenu_offset);
sm.setFadeDegree(0.35f);
sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
getSlidingMenu().setMode(SlidingMenu.LEFT);
getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
}
抽屉的布局
menu_frame.xml:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/menu_frame"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/menu_frame"
android:layout_width="match_parent"
android:layout_height="match_parent" />
FourthFragment:
随便用IDE新建一个Fragment即可。
在dimens.xml里加入
<dimen name="slidingmenu_offset">60dp</dimen>
<dimen name="shadow_width">15dp</dimen>
<dimen name="shadow_width">15dp</dimen>
新建一个shadow.xml是用来产生阴影的:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<gradient
android:endColor="#33000000"
android:centerColor="#11000000"
android:startColor="#00000000" />
</shape>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<gradient
android:endColor="#33000000"
android:centerColor="#11000000"
android:startColor="#00000000" />
</shape>
5. 自此,轻轻松松主项目里加入SlidingMenu效果。
如:A.主界面,B.抽屉界面,C.手指滑动中