Android第三方类库:slidingmenu 实现侧滑菜单

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);
	}

	
}



你可能感兴趣的:(Android第三方类库:slidingmenu 实现侧滑菜单)