我們現(xiàn)在開始先把側(cè)滑欄做出來,再做底部。
我們上次已把側(cè)滑菜單的library引進(jìn)來了,現(xiàn)在我們要去用這個(gè)東西。
我要用它的話,MainActivity 就不能繼承Activity了,而是繼承SlidingFragmentActivity
現(xiàn)在我們來分析1下
(1)其實(shí)setContentView(R.layout.activity_main);這句代碼只是把activity_main.xml這個(gè)界面給顯現(xiàn)出來,了,這個(gè)同樣成為內(nèi)容頁,然后內(nèi)容頁有1個(gè)按鈕點(diǎn)1下就出來1個(gè)東西,這個(gè)才是側(cè)滑菜單。
(2)我們已有setContentView了,然后呢我們也得把setBehindContentView也就是隱藏的側(cè)滑菜單的View設(shè)計(jì)出來。
下面我們先來寫1下這個(gè)側(cè)滑菜單的布局menu.xml
要想使用側(cè)滑菜單,要先得到側(cè)滑菜單,下面我們來分析1下使用側(cè)滑菜單要那些步驟,要做哪些事情。
1、得到側(cè)滑菜單
SlidingMenu sm = getSlidingMenu();
2、設(shè)置側(cè)滑菜單是從左側(cè)出來還是從右側(cè)出來
sm.setMode(SlidingMenu.LEFT);
3、設(shè)置滑動(dòng)菜單出來以后,內(nèi)容頁 , 顯示的剩余寬度
sm.setBehindWidthRes(R.dimen.slidingmenu_offset);
4、設(shè)置滑動(dòng)菜單的陰影, 設(shè)置陰影,陰影需要開始的時(shí)候,特別暗,漸漸的變淡
sm.setShadowDrawble(R.drawable.shadow);
5、設(shè)置陰影的寬度
sm.setShadowWidth(R.dimen.shadow_width);
6、設(shè)置滑動(dòng)菜單的范圍
//第1個(gè)參數(shù)SlidingMenu.TOUCHMODE_FULLSCREEN 可以全屏滑動(dòng)
//第2個(gè)參數(shù)SlidingMenu.TOUCHMODE_MARGIN 只能在邊沿滑動(dòng)
//3個(gè)參數(shù)SlidingMenu.TOUCHMODE_NONE 不能滑動(dòng)
sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
(3) 經(jīng)過上面1系列的方法調(diào)用,我們就把滑動(dòng)菜單集成進(jìn)來了。現(xiàn)在我們要做的就是初始化滑動(dòng)菜單里面的數(shù)據(jù)。建立1個(gè)包放fragment。
我們建立1個(gè)MenuFragment類來繼承Fragment 。然后我們重寫里面的3個(gè)方法,分別是onActivityCreated(); onCreate(); onCreateView();
然后我們建立菜單內(nèi)容視圖,也就是1個(gè)ListView。
接著,在onCreateView();方法里面使用LayoutInflater把list_view.xml加載進(jìn)來,
view = LayoutInflater.from(getActivity()).inflate(R.id.list_view,null);
return view; //注意:Fragment的上下文是通過getActivity()來獲得的
注意: 學(xué)習(xí)Fragment首先要深入了解Fragment的生命周期。(可查閱官方文檔)
Fragment其實(shí)不能獨(dú)立存在,它是依附于Activity,然后呢,也就是說它的生命周期的方法跟Activity很像,Fragment先走的是onCreate()方法,然后再走onCreateView();方法,然后再走onActivityCreated();
接著上面,我們在onActivityCreated()把ListView的數(shù)據(jù)通過Adapter加載進(jìn)來,如果數(shù)據(jù)不多,簡單,可以斟酌直接用系統(tǒng)的Adapter,我們可以定義1個(gè)ArrayAdapter<String>就好了,然后給該Adapter中傳1個(gè)List<String>。
最后,我們想用這個(gè)Fragment,那末我們就在MainActivity里面new1個(gè)Fragment,然后我們可以通過getSupportFragmentManager()開啟1個(gè)事務(wù),然后去替換。有3個(gè)參數(shù),第1個(gè)是我要替換的ID,第2個(gè)是我要替換的Fragment,第3個(gè)就是給它1個(gè)綁定的值。
通過1系列的操作,我們的SlideMenu+Fragment就完成了。