Fragment配合RadioGroup实现点击切换布局
这里用了
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实现点击切换布局的更多相关文章
- Fragment与Radiogroup联动,经典的主界面布局。使用show和hide的方式实现;
Fragment+RadioGroup经典的主界面布局,方便实用: 1.使用replace方式: 直接上代码,先是布局文件: <?xml version="1.0" enco ...
- 仿美团外卖,饿了吗 两个ListView联动,左边点击切换右边,右边滑动切换左边
先上效果图: 实现思路: 1.先说右边标题: 首先,右边的数据源集合中的Javabean中含有三个属性name,type,title,而每个条目中会默认含有一个标题. 如果这是第一个条目,就让标题显示 ...
- 实现RecycleView动态使列表item可以点击或不可点击切换
效果 这里讲的是第二个button跳转的Activity,这里和上一篇不同之处在于可以item点击.item子控件点击 继承BaseAdapter 同样也要继承BaseAdapter public c ...
- Android之ActionBar、Tabs、Fragment、ViewPager实现标签页切换并缓存页面
感觉 Android 到处都是坑,每个地方都要把人折腾半天. 今天来简单说说 Android之ActionBar.Tabs.Fragment.ViewPager 实现标签页切换并缓存页面 关于他们的介 ...
- Python3从零开始爬取今日头条的新闻【四、模拟点击切换tab标签获取内容】
Python3从零开始爬取今日头条的新闻[一.开发环境搭建] Python3从零开始爬取今日头条的新闻[二.首页热点新闻抓取] Python3从零开始爬取今日头条的新闻[三.滚动到底自动加载] Pyt ...
- jquery——左右按钮点击切换一组图片功能
一.最终效果 二.功能分析 1.需求分析 点击左边pre按钮,显示前面三个图片,点击右边的next按钮,显示后面的一组(三个)图片.初始化只显示next按钮,到最后一组只显示pre按钮,中间过程两按钮 ...
- jquery插件jquery.LightBox.js之点击放大图片并左右点击切换图片(仿相册插件)
该插件乃本博客作者所写,目的在于提升作者的js能力,也给一些js菜鸟在使用插件时提供一些便利,老鸟就悠然地飞过吧. 此插件旨在实现目前较为流行的点击放大图片并左右点击切换图片的效果,您可以根据自己的实 ...
- jquery - 通过点击切换文字内容
今天要写一个简单的显示/隐藏效果,本以为是挺简单的事儿,没想到还真因为基本功不扎实遇到了问题,这里跟大家分享一下. 百度了很多方法,精简能用的干货实在太少,最后还是通过去查jq的官方api才找到了解决 ...
- jquery中点击切换的实现
项目中经常会遇到一种情况,就是点击切换,比如点击按钮,div样式为1,再点击一下按钮,div样式为2,再点击一下按钮,div样式为1.需要自定义jQuery方法toggle. // toggle方法 ...
随机推荐
- .NET平台开源项目速览(2)Compare .NET Objects对象比较组件
.NET平台开源项目速览今天介绍一款小巧强大的对象比较组件.可以更详细的获取2个对象的差别,并记录具体差别,比较过程和要求可以灵活配置. .NET开源目录:[目录]本博客其他.NET开源项目文章目录 ...
- 【原创】开源Math.NET基础数学类库使用(12)C#随机数扩展方法
本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新 开源Math.NET基础数学类库使用总目录:[目录]开源Math.NET基础数学类库使用总目录 前言 ...
- andriod 手机按键检测事件 onKeyDown() 简述
函数原型: public boolean onKeyDown(int keyCode, KeyEvent event); 第一个参数是用户按下键时,当前所接收到的按键代号: 第二个参数是按键事件的对象 ...
- react-native 学习之TextInput组件篇
/** * Sample React Native App * https://github.com/facebook/react-native */ 'use strict'; import Rea ...
- ZOJ Problem Set - 1251 Box of Bricks
这道题简单的翻译成纯数学语言就是给你n个数字,每次运算只能是加1或者减1,问经过最短几步可以使得n个数字相等 由于题目限定了n个数字一定有平均数,所以求出avg,将所有比其大的数字或者比其小的数字的差 ...
- 1Z0-053 争议题目解析709
1Z0-053 争议题目解析709 考试科目:1Z0-053 题库版本:V13.02 题库中原题为: 709.A database has three online redo log groups w ...
- 百度eCharts体验
前言 从昨天开始给项目里添加一些图表对比功能,上一个项目里使用的是Highcharts,本打算继续用Highcharts做的,昨天试了下做出来的效果不太好,主要也是因为看的多了没什么新鲜感了,于是便尝 ...
- ros::spin() 和 ros::spinOnce() 区别及详解
版权声明:本文为博主原创文章,转载请标明出处: http://www.cnblogs.com/liu-fa/p/5925381.html 博主提示:本文基于ROS Kinetic Kame,如有更(g ...
- QT5.1 调用https
以VS开发为例.因为https访问需要用到SSL认证,而QT默认是不支持SSL认证,所以在使用之前必须先做一些准备工作: 需要安装OpenSSL库: 1.首先打开http://slproweb.com ...
- C#冒泡排序法
基本原理 比较两个相邻的数的大小,每次比较完后把最大的数放到本轮的末尾.假设有数组: 258,445,131,97,22,36,17,38,28,28,第一轮:258和445比较,位置不用交换.第二轮 ...