1.首先导入slidingmenu的library,该library中含有android.support.v4包,如项目中已含有该包,应将项目中的v4包删除。
2.实现方法一:需要加入侧滑菜单的activity继承SlidingFragmentActivity。然后在setContentView()方法后再调用
setBehindContentView(R.layout.left_sliding_menu);方法。如果不调用该法发,则抛出异常,程序终止。
下面的方法对侧滑菜单进行定义。
public void initSlidingMenu() {
// 获取到SlidingMenu对象,然后设置一些常见的属性
SlidingMenu sm = getSlidingMenu();
// 设置阴影的宽度
// sm.setShadowWidth(0);
// 设置阴影的颜色
// sm.setShadowDrawable(R.drawable.btn_danger);
// 设置侧滑栏完全展开之后,距离另外一边的距离,单位px,设置的越大,侧滑栏的宽度越小
sm.setBehindOffset(200);
// 设置渐变的程度,范围是0-1.0f,设置的越大,则在侧滑栏刚划出的时候,颜色就越暗。1.0f的时候,颜色为全黑
// sm.setFadeDegree(0.3f);
// 设置触摸模式,可以选择全屏划出,或者是边缘划出,或者是不可划出
sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
}
弹出菜单,则在activity中调用toggl()方法即可。()
如要实现两侧菜单,则要借助fragment来实现;
1.在setBehindContentView(R.layout.lcontainer);中,用一个容器布局作为参数;
2.当要弹出左侧菜单时,调用以下方法:
public void showLeft(View v) {
//开启fragment事务 FragmentTransaction transaction = getSupportFragmentManager() .beginTransaction();
//创建一个新的leftfragment(也可以只实例化一次作为全局变量使用),LeftFragment是自定义frament子类,重写了oncreateview方法,仅仅是设置布局,把想要的左侧布局作为参数传入。 Fragment leftFragment = new LeftFragment();
//当要显示左侧菜单时,放置该fragment到容器内 transaction.replace(R.id.fragment_container, leftFragment); transaction.commit(); SlidingMenu sm = getSlidingMenu(); sm.setMode(SlidingMenu.LEFT); toggle(); }
3.右侧同理,当要显示右侧时,用自定义的右侧fragment放置到容器中。
LeftFragment源码:
package fragment; import com.zaixianboshi.R; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class LeftFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreateView(inflater, container, savedInstanceState); return inflater.inflate(R.layout.left_sliding_menu, container,false); } }