我们现在开始先把侧滑栏做出来,再做底部。
我们上次已经把侧滑菜单的library引进来了,现在我们要去用这个东西。
我要用它的话,MainActivity 就不能继承Activity了,而是继承SlidingFragmentActivity
现在我们来分析一下
(1)其实setContentView(R.layout.activity_main);这句代码只是把activity_main.xml这个界面给呈现出来,了,这个也成为内容页,然后内容页有一个按钮点一下就出来一个东西,这个才是侧滑菜单。
(2)我们已经有setContentView了,然后呢我们也得把setBehindContentView也就是隐藏的侧滑菜单的View设计出来。
下面我们先来写一下这个侧滑菜单的布局menu.xml
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/menu_frame"> </FrameLayout>
要想使用侧滑菜单,要先得到侧滑菜单,下面我们来分析一下使用侧滑菜单要那些步骤,要做哪些事情。
1、得到侧滑菜单
SlidingMenu sm = getSlidingMenu();
2、设置侧滑菜单是从左边出来还是从右边出来
sm.setMode(SlidingMenu.LEFT);
3、设置滑动菜单出来之后,内容页 , 显示的剩余宽度
sm.setBehindWidthRes(R.dimen.slidingmenu_offset);
4、设置滑动菜单的阴影, 设置阴影,阴影需要开始的时候,特别暗,慢慢的变淡
sm.setShadowDrawble(R.drawable.shadow);
5、设置阴影的宽度
sm.setShadowWidth(R.dimen.shadow_width);
6、设置滑动菜单的范围
//第一个参数SlidingMenu.TOUCHMODE_FULLSCREEN 可以全屏滑动
//第二个参数SlidingMenu.TOUCHMODE_MARGIN 只能在边沿滑动
//三个参数SlidingMenu.TOUCHMODE_NONE 不能滑动
sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
(3) 经过上面一系列的方法调用,我们就把滑动菜单集成进来了。现在我们要做的就是初始化滑动菜单里面的数据。建立一个包放fragment。
我们建立一个MenuFragment类来继承Fragment 。然后我们重写里面的3个方法,分别是onActivityCreated(); onCreate(); onCreateView();
然后我们建立菜单内容视图,也就是一个ListView。
接着,在onCreateView();方法里面使用LayoutInflater把list_view.xml加载进来,
view = LayoutInflater.from(getActivity()).inflate(R.id.list_view,null);
return view; //注意:Fragment的上下文是通过getActivity()来获取的
注意: 学习Fragment首先要深刻了解Fragment的生命周期。(可查阅官方文档)
Fragment其实不能独立存在,它是依附于Activity,然后呢,也就是说它的生命周期的方法跟Activity很像,Fragment先走的是onCreate()方法,然后再走onCreateView();方法,然后再走onActivityCreated();
接着上面,我们在onActivityCreated()把ListView的数据通过Adapter加载进来,如果数据不多,简单,可以考虑直接用系统的Adapter,我们可以定义一个ArrayAdapter<String>就行了,然后给该Adapter中传一个List<String>。
最后,我们想用这个Fragment,那么我们就在MainActivity里面new一个Fragment,然后我们可以通过getSupportFragmentManager()开启一个事务,然后去替换。有3个参数,第一个是我要替换的ID,第二个是我要替换的Fragment,第三个就是给它一个绑定的值。
通过一系列的操作,我们的SlideMenu+Fragment就完成了。
(3)SlidingMenu开源框架的SlideMenu在项目的使用方法+Fragment
原文地址:http://blog.csdn.net/liuyaokui123/article/details/41700955