您的位置:首页 > 其它

SlidingMenu创建侧滑栏的四种方式

2017-02-10 15:53 85 查看
第一种:

public class MainActivity extends FragmentActivity{
//这步是最关键的一部引用开源类库中的类创建一个侧滑菜单
SlidingMenu menu = new SlidingMenu(this);
menu.setMode(SlidingMenu.LEFT);//滑动的方向
menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);//滑动的范围
menu.setShadowWidthRes(R.dimen.shadow_width);//设置阴影图片的宽度
menu.setShadowDrawable(R.drawable.shadow);//设置阴影图片(也可以自定义图片)
menu.setBehindOffsetRes(R.dimen.offset);//设置划出后主窗体的剩余宽度
menu.setFadeDegree(0.35f);//滑动显示的渐入溅出效果
menu.attachToActivity(this, SlidingMenu.SLIDING_WINDOW);//使SlidingMenu附加在Activity上
menu.setMenu(R.layout.menu_frag);
//为menu菜单的布局添加内容
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.menu_fragid, new egFragment())
.commit()


第二种:

//这里继承的是SlidingFragmentActivity

public class MainActivity extends SlidingFragmentActivity {
//设置左侧menu的布局(默认),
setBehindContentView(R.layout.menu_leftfrag);
//设置menu.setMenu(布局id)默认左边的。并且要写依附于那个窗体
SlidingMenu menu = getSlidingMenu(),//创建SlidingMenu对象,直接get获取
menu.setSecondaryMenu(R.layout.menu_rightfrag);//设置右侧menu的布局
menu.setMode(SlidingMenu.LEFT_RIGHT);
//      menu.setBehindWidthRes(R.dimen.menu_width);//200dp
menu.setBehindOffsetRes(R.dimen.menu_width);//左右都生效
menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);//侧边可滑动
//      menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);//依附的窗体
//      menu.setMenu(R.layout.menu_leftfrag);//此方式时候可省去
//创建MenuFragment 对象
4000
MenuFragment menufrag = new MenuFragment();
getSupportFragmentManager().beginTransaction()
.replace(R.id.fl_menuleft, menufrag,"HOME").commit();//替换左侧


getSupportFragmentManager().beginTransaction()
.replace(R.id.fl_menuright, new Frag04()).commit();//替换右侧布局的framlayout

//挤压的效果
CanvasTransformer mTransformer=new CanvasTransformer(){
@Override
public void transformCanvas(Canvas canvas, float percentOpen) {
canvas.scale(percentOpen, 1, 0, 0);
}
};
menu.setBehindCanvasTransformer(mTransformer);


第三种:不用关联类库直接用抽屉控件即可简单实现

第四种 :通过V7包中的v4包的Drawerlayout和Actionbar的结合使用,详情见项目三(科普)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: