高仿拉手网底部菜单实现FragmentActivity+Fragment+RadioGroup

来源:互联网 发布:小鸡模拟器 知乎 编辑:程序博客网 时间:2024/04/29 04:32

先把欢迎页和引导页的代码上传了http://download.csdn.net/detail/u013134391/7183787不要积分的。

底部菜单栏实现在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替换进行界面的替换//具体代码如下

//将frameLayout替换成第index个Fragment                Fragment fragment = (Fragment) fragmentAdapter.instantiateItem(                        frameLayout, index);                //将第index个界面替换成fragment                fragmentAdapter.setPrimaryItem(frameLayout, index, fragment);                //提交fragmentAdapter.finishUpdate(frameLayout);
http://download.csdn.net/detail/u013134391/7190025  代码无积分下载

0 0
原创粉丝点击