这里用了

 compile 'com.jakewharton:butterknife:7.0.1'
compile 'org.greenrobot:eventbus:3.0.0'

MainActivity布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="liu.radiobuttonandfragment.MainActivity"> <FrameLayout
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"> </FrameLayout> <LinearLayout android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@mipmap/nav_footer_white"
android:gravity="center" android:orientation="horizontal"> <RadioGroup
android:id="@+id/rgTools"
android:layout_width="match_parent"
android:layout_height="match_parent" android:gravity="center"
android:orientation="horizontal"> <RadioButton
android:id="@+id/rbHome"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_gravity="right"
android:layout_weight="1"
android:button="@null"
android:checked="true"
android:drawableTop="@drawable/selector_main_btn_home"
android:gravity="center"
android:paddingLeft="0dp"
android:text="首页"/> <RadioButton
android:id="@+id/rbShop"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:button="@null"
android:checked="false"
android:drawableTop="@drawable/selector_main_btn_shopcart"
android:gravity="center"
android:text="购物车"/> <RadioButton
android:checked="false"
android:id="@+id/rbMessage"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:button="@null"
android:drawableTop="@drawable/selector_main_btn_message"
android:gravity="center"
android:text="消息"/> <RadioButton
android:checked="false"
android:id="@+id/rbMine"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_weight="1"
android:button="@null"
android:drawableTop="@drawable/selector_main_btn_mine"
android:gravity="center"
android:text="我的"/> </RadioGroup> </LinearLayout> </LinearLayout>

主要代码

 private void initFragment() {
//首页
HomeFragment homeFragment =new HomeFragment();
//购物车
ShopcartFragment shopcartFragment =new ShopcartFragment(); //消息
MessageFragment messageFragment =new MessageFragment();
//个人中心 MineFragment mineFragment =new MineFragment(); //添加到数组
mFragments = new Fragment[]{homeFragment,shopcartFragment,messageFragment,mineFragment}; //开启事务 FragmentTransaction ft =
getSupportFragmentManager().beginTransaction(); //添加首页
ft.add(R.id.content,homeFragment).commit(); //默认设置为第0个
setIndexSelected(0); } private void setIndexSelected(int index) { if(mIndex==index){
return;
}
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction ft = fragmentManager.beginTransaction(); //隐藏
ft.hide(mFragments[mIndex]);
//判断是否添加
if(!mFragments[index].isAdded()){
ft.add(R.id.content,mFragments[index]).show(mFragments[index]);
}else {
ft.show(mFragments[index]);
} ft.commit();
//再次赋值
mIndex=index; } @OnClick({R.id.rbHome, R.id.rbShop, R.id.rbMessage, R.id.rbMine})
public void onClick(View view) {
switch (view.getId()) {
case R.id.rbHome:
setIndexSelected(0);
break;
case R.id.rbShop:
setIndexSelected(1);
break;
case R.id.rbMessage:
setIndexSelected(2);
break;
case R.id.rbMine:
setIndexSelected(3);
break;
} }

源码:

https://github.com/ln0491/RadioButtonAndFragment

Fragment配合RadioGroup实现点击切换布局的更多相关文章

  1. Fragment与Radiogroup联动,经典的主界面布局。使用show和hide的方式实现;

    Fragment+RadioGroup经典的主界面布局,方便实用: 1.使用replace方式: 直接上代码,先是布局文件: <?xml version="1.0" enco ...

  2. 仿美团外卖,饿了吗 两个ListView联动,左边点击切换右边,右边滑动切换左边

    先上效果图: 实现思路: 1.先说右边标题: 首先,右边的数据源集合中的Javabean中含有三个属性name,type,title,而每个条目中会默认含有一个标题. 如果这是第一个条目,就让标题显示 ...

  3. 实现RecycleView动态使列表item可以点击或不可点击切换

    效果 这里讲的是第二个button跳转的Activity,这里和上一篇不同之处在于可以item点击.item子控件点击 继承BaseAdapter 同样也要继承BaseAdapter public c ...

  4. Android之ActionBar、Tabs、Fragment、ViewPager实现标签页切换并缓存页面

    感觉 Android 到处都是坑,每个地方都要把人折腾半天. 今天来简单说说 Android之ActionBar.Tabs.Fragment.ViewPager 实现标签页切换并缓存页面 关于他们的介 ...

  5. Python3从零开始爬取今日头条的新闻【四、模拟点击切换tab标签获取内容】

    Python3从零开始爬取今日头条的新闻[一.开发环境搭建] Python3从零开始爬取今日头条的新闻[二.首页热点新闻抓取] Python3从零开始爬取今日头条的新闻[三.滚动到底自动加载] Pyt ...

  6. jquery——左右按钮点击切换一组图片功能

    一.最终效果 二.功能分析 1.需求分析 点击左边pre按钮,显示前面三个图片,点击右边的next按钮,显示后面的一组(三个)图片.初始化只显示next按钮,到最后一组只显示pre按钮,中间过程两按钮 ...

  7. jquery插件jquery.LightBox.js之点击放大图片并左右点击切换图片(仿相册插件)

    该插件乃本博客作者所写,目的在于提升作者的js能力,也给一些js菜鸟在使用插件时提供一些便利,老鸟就悠然地飞过吧. 此插件旨在实现目前较为流行的点击放大图片并左右点击切换图片的效果,您可以根据自己的实 ...

  8. jquery - 通过点击切换文字内容

    今天要写一个简单的显示/隐藏效果,本以为是挺简单的事儿,没想到还真因为基本功不扎实遇到了问题,这里跟大家分享一下. 百度了很多方法,精简能用的干货实在太少,最后还是通过去查jq的官方api才找到了解决 ...

  9. jquery中点击切换的实现

    项目中经常会遇到一种情况,就是点击切换,比如点击按钮,div样式为1,再点击一下按钮,div样式为2,再点击一下按钮,div样式为1.需要自定义jQuery方法toggle. // toggle方法 ...

随机推荐

  1. Web APi之Web Host消息处理管道(六)

    前言 我们知道Web API本身是无法提供请求-响应的机制,它是通过Web Host以及Self Host的寄宿的宿主方式来提供一个请求-响应的运行环境.二者都是将请求和响应抽象成HttpRespon ...

  2. 恢复MySQL主从数据一致性的总结

    今日上午,同事告知,MySQL主从数据库的数据不一致,猜测备库在同步过程中出现了问题,于是,登上备库,使用 mysql> show slave status\G查看,果然,备库在insert语句 ...

  3. php对文本文件进行分页功能简单实现

    php对文本文件进行分页功能简单实现 <!DOCTYPE> <html> <head> <meta http-equiv="Content-type ...

  4. 编译器出现conflicting types for 某某的错误原因总结

    直译就是xxxx 发生了一种冲突!比如今天发现的这个错误,实属低级! 本次错误的原因是:函数没有先声明,便写在了主函数后面!应该是先声明,后定义,如果只有定义,则定义必须写在主函数上方.通过查资料,有 ...

  5. vue+node开发手机端h5页面开发遇到的坑

    项目进行中...随时更新 这里记录了一些手机端调试的方式 一 css 1.文字超过span宽度显示...(单行文字) .topWrap .introduce span { padding: 0 17p ...

  6. DotNet指定文件显示的尺寸

    在项目中开发中,有时候需要将文件的尺寸进行控制,例如需要将文件的尺寸指定为字节,TB等.现在提供一个方法,实现将指定文件的尺寸, 提供:"字节", "KB", ...

  7. 【PHP面向对象(OOP)编程入门教程】17.克隆对象__clone()方法

    有的时候我们需要在一个项目里面,使用两个或多个一样的对象,如果你使用“new”关键字重新创建对象的话,再赋值上相同的属性,这样做比较烦琐而且也容易出错,所以要根据一个对象完全克隆出一个一模一样的对象, ...

  8. 7.1数据注解属性--Key【Code-First系列】

    Key特性可以被用到类的属性中,Code-First默认约定,创建一个主键,是以属性的名字“Id”,或者是类名+Id来的. Key特性重写了这个默认的约定,你可以应用Key特性到一个类的属性上面,不管 ...

  9. (转)内置系统账户:Local system/Network service/Local Service 区别

    最近会转载一些 MSSQL 基础相关的文章. 参考文献: http://www.cnblogs.com/xianspace/archive/2009/04/05/1429835.html 前言 今天在 ...

  10. JS 常用验证REG

    不错的JS验证~~~~~~~~~~~~~~~~~~~~~~~~~ 用途:校验ip地址的格式 输入:strIP:ip地址 返回:如果通过验证返回true,否则返回false: */ function i ...