您的位置:首页 > 其它

SlidingMenu和Fragment的总结

2015-05-31 10:36 351 查看
目的:点击SlidingMenu列表每一项的时候,让主页面显示该项对应的Fragment
1.实现Slidingmenu滑出的效果
2.实现slidingmenu里的LeftMenuFragment里的listview
3.点击listview的item的时候,通知主界面显示当前对应的fragment

ActionbarSherlock运行在3.0一下的手机上,会报错,要求将当前的activity的主题设置为ActionbarSherlock要求的主题
android:theme="@style/Theme.Sherlock.Light"

SlidingMenu使用方式的不同
得到Slidingmenu对象
Activity:获得SlidingMenu对象是  new SlidingMenu();
Fragment: Activity 继承 SlidingFragmentActivity  通过getSlidingMenu得到
SlidingMenu对象

设置SlidingMenu使用的布局的区别
Activity:sm.setMenu(layout res_id);
Fragment:      //设置SlidingMenu的layout
setBehindContentView(R.layout.menu_frame);
FramLayout用来装载Fragment的
继承SlidingFragmenActivity使用的布局文件是一个全屏的		FragmentLayout 用来动态装载
SlidingMenu的主界面的内容也是Fragment显示

Fragment使用SlidingMenu的时候给主界面指定显示的Fragment
//设置当前的fragment
this.getSupportFragmentManager()//拿到fragment管理器
.beginTransaction()//fragment的事务管理
.replace(R.id.content_frame, contentFragment)//1.layout的id 2.要显示fragment的实例
.commit();

给SlidingMenu指定显示Fragment的方法
//设置menu的fragment
leftFragment = new LeftFragment();
this.getSupportFragmentManager()
.beginTransaction()
.replace(R.id.menu_frame, leftFragment)
.commit();

设置SlidingMenu必要的参数和属性
/设置SlidingMenu属性和layout
sm = getSlidingMenu();//得到SlidingMenu的对象
sm.setMode(SlidingMenu.LEFT_RIGHT);//设置slidingmenu滑动的方式
sm.setShadowDrawable(R.drawable.shadow);//设置slidingmenu边界的阴影图片
sm.setShadowWidthRes(R.dimen.shadow_width);//设置阴影的宽度
sm.setBehindOffsetRes(R.dimen.slidingmenu_offset);//设置slidingmenu宽度
//		sm.setBehindWidth(400);//设置slidingmenu宽度
sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);//设置滑出slidingmenu范围
sm.setMenu(R.layout.menu_frame);//设置slidingmen显示的layout的id
sm.setBehindCanvasTransformer(canvasTransformer3);//设置slidingmenu动画

SlidingMenu支持右侧划出
//设置右侧的slidingmenu
sm.setSecondaryMenu(R.layout.menu_frame_right);
sm.setSecondaryShadowDrawable(R.drawable.shadowright);
还需要重新设置
sm.setMode(SlidingMenu.LEFT_RIGHT);//设置slidingmenu滑动的方式
//设置右侧滑出的slidingmenu
RightFragment rightFragment = new RightFragment();
this.getSupportFragmentManager()
.beginTransaction()
.replace(R.id.menu_frame_right, rightFragment)
.commit();

显示ActionBar相关
//设置在slidingmenu页显示ActionBar
setSlidingActionBarEnabled(false);
//是ActionBar的图标可以被点击
getSupportActionBar().setHomeButtonEnabled(true);
//启用向左的图标
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: