天天看點

高仿拉手網底部菜單實作FragmentActivity+Fragment+RadioGroup

先把歡迎頁和引導頁的代碼上傳了不要積分的。

底部菜單欄實作在4.0以前都是用tabhost,現在基本都被fargmentActivity加RadioGroup替代。下面實作底部菜單同樣是用後者實作。

先聲明一組四個的RadioButton的RadioGroup的單選按鈕組,然後呢對比拉手網我們就發現樣子太不一樣了,我們的還有一個單選按鈕的樣式,這個我們寫RadioButton的android:button="@null"屬性去除樣式。另外拉手網的是上面圖檔下面是名稱的樣式,而且他的名城和圖檔在不通狀态下顔色不同,這個就需要我們寫幾個按鈕選擇器selector,我們通過selector的不通狀态來設定不通的圖檔,名稱也是一樣。再設定RadioButton設定他的android:drawableTop=""屬性,這樣圖檔就會在字的上面了。這樣我們的底部菜單欄的布局就寫完了。

在我們點選底部的單選按鈕的時候怎麼切換,在我們剛剛寫的底部菜單的布局上添加一個FramentLayout,占據除了底部菜單欄的所有地方。

然後在主界面裡,監聽RadioGroup的切換,監聽checkedChanged,下面我們準備4個Fragmenet的切換界面,這裡的Fragment因為要向下相容,是以我們使用的是擴充包裡的Fragment,Fragment重寫onCreateView方法,加載布局檔案。

我們需要寫一個adapter來幫我們管理這四個界面的切換,這裡的adapter我們就寫的是FragmentStatePagerAdapter,這裡構造方法需要傳入參數FragmentManager,所有我們的MainActivity需要繼承的是FragmentActivity,這樣才能this.getSupportFragmentManager()擷取一個FragmentManager,這裡需要必要實作getcount,因為我們就4個界面就直接寫4,getItem這裡我們用來初始化界面,判斷目前是那個界面0就是首頁了,其他以此類推,然後在RadioGroup監聽的地方使用FrameLayout替換進行界面的替換//具體代碼如下

代碼無積分下載下傳