效果图:

图1:

图2:

图3:

activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity"><LinearLayoutandroid:id="@+id/ly_main"android:layout_width="match_parent"android:layout_height="0dp"android:orientation="vertical"android:layout_weight="9"></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1"><RadioGroupandroid:layout_width="match_parent"android:layout_height="match_parent"android:background="#03b8ff"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"><RadioButtonandroid:id="@+id/rb_message"android:layout_width="0dp"android:layout_height="match_parent"android:layout_weight="1"android:text="消息"android:button="@null"android:textSize="20dp"android:gravity="center"android:textColor="#fff"/><RadioButtonandroid:id="@+id/rb_linkman"android:layout_width="0dp"android:layout_height="match_parent"android:layout_weight="1"android:text="联系人"android:button="@null"android:textSize="20dp"android:gravity="center"android:textColor="#fff"/><RadioButtonandroid:id="@+id/rb_say"android:layout_width="0dp"android:layout_height="match_parent"android:layout_weight="1"android:text="说说"android:button="@null"android:textSize="20dp"android:gravity="center"android:textColor="#fff"/></LinearLayout></RadioGroup></LinearLayout></LinearLayout>

MianActivity.java:

public class MainActivity extends AppCompatActivity implements View.OnClickListener {private RadioButton rbMessage,rbSay,rbLinkman;private FragmentManager manager;private FragmentTransaction transaction;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();     //  初始化控件//  创建布局管理器对象manager = getSupportFragmentManager();transaction = manager.beginTransaction();   // 获得事务对象,并启动事务transaction.add(R.id.ly_main,new LinkmanFragment());    //  默认打开联系人界面,第一个参数是这个 Fragment 要依赖的布局,第二个是对应的 Fragmenttransaction.commit();       //  提交事务}private void initView() {rbMessage = findViewById(R.id.rb_message);rbLinkman = findViewById(R.id.rb_linkman);rbSay = findViewById(R.id.rb_say);rbSay.setOnClickListener(this);rbLinkman.setOnClickListener(this);rbMessage.setOnClickListener(this);}@Overridepublic void onClick(View v) {transaction = manager.beginTransaction();       //  因为要切换界面,所以要重新获取一次事务对象switch (v.getId()){case R.id.rb_message:/***        利用replace方法,达到滑动切换界面的目的*        第一个参数是:   这个 Fragment 要放置的布局界面*        第二个参数是:   对应的 Fragment*/transaction.replace(R.id.ly_main,new MessageFragment());break;case R.id.rb_linkman:transaction.replace(R.id.ly_main,new LinkmanFragment());break;case R.id.rb_say:transaction.replace(R.id.ly_main,new SayFragment());break;}transaction.commit();       //  重新提交事务}
}

右键 java / new / fragment / fragment(Bank),就会在创建类的基础上自动创建 xml文件:

按照上面的步骤,创建三个 Fragment,分别为: MessageFragment , LinkmanFragment, SayFragment:

这三个代码基本上一模一样,我就列举其中一个就好了:

MessageFragment.java

public class MessageFragment extends Fragment {@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {// Inflate the layout for this fragmentreturn inflater.inflate(R.layout.fragment_message, container, false);}
}

XML 布局代码也基本差不多一样,我就列举一个就好
fragment_message.xml :

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"tools:context=".MessageFragment"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerInParent="true"android:text="消息"android:textSize="40dp"/></RelativeLayout>

最后点击运行即可~!

Android Fragment之间的切换相关推荐

  1. 安卓开发fragment之间的切换_Android开发必会的组件化技术—Android架构和提升必备...

    很多时候我们开发的时候,都需要新建项目,然后一个个底层模块去写,比如各种常见View,工具类,缓存模块等,经常进行这种重复的搬砖工作.主要还是因为我们在平时的开发过程中就没有注意分层.分模块.资源随意 ...

  2. android fragment界面滑动切换效果,Android App中使用ViewPager+Fragment实现滑动切换效果...

    在android应用中,多屏滑动是一种很常见的风格,没有采用viewpager的代码实现会很长,如果采用ViewPager,代码就会短很多,但是使用ViewPager也有弊端:需要导入android- ...

  3. android fragment面试,Android fragment之间传递数据的方式?

    方法一: 1.在MainFragment中设置一个setData()方法,在方法中设置更改按钮名称; //MainFragment.java文件中public void setData(String ...

  4. android fragment+ FragmentTabHost+viewpager 切换状态不保存的问题

    转载请注明出处:http://blog.csdn.net/djy1992/article/details/46674169 @author dujinyang 难得有时间上来写博客. fragment ...

  5. 外部Activity和fragment之间的切换,传值

    下,Activity A /*下6h,*//*传值*//*跳转到Activity的Fragment中*/ Intent intent = new Intent(); intent.putExtra(& ...

  6. android tab之间滑动切换界面功能

    1. onTouchListener();                       //捕捉touch事件,比如说onDown 需要将可滑动的控件加上两个方法:(1)view.setOnTouch ...

  7. 基于android的网络音乐播放器-添加viewpager和fragment实现滑动切换多个界面(二)

    作为android初学者,最近把疯狂android讲义和疯狂Java讲义看了一遍,看到书中介绍的知识点非常多,很难全部记住,为了更好的掌握基础知识点,我将开发一个网络音乐播放器-EasyMusic来巩 ...

  8. android tab pageview,Android Fragment在ViewPager中到底经历了什么?

    2017年05月30 最后的懒加载写的不好,推荐请叫我大苏同学写的Fragment懒加载博客, [Android]再来一篇Fragment的懒加载(只加载一次哦) 在大苏同学的博客评论里,看到了另一个 ...

  9. Android中fragment之间和Activity的传值、切换

    介绍: 功能介绍:通过一个activity下方的三个按钮,分别是发送消息(sendButton).聊天记录(chatButton).常用语(commonButton).当单击按钮是,来切换上方的fra ...

  10. Android使用Fragment来实现TabHost的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信...

    以下内容为原创,转载请注明:http://www.cnblogs.com/tiantianbyconan/p/3360938.html 如新浪微博下面的标签切换功能,我以前也写过一篇博文(http:/ ...

最新文章

  1. Servlet(一)
  2. 第十六届智能车竞赛 | 单车拉力组浅析
  3. Per-Title编码优化
  4. Page cache和Buffer cache
  5. 21. GD32F103C8T6入门教程-flash/fmc连续读写操作
  6. 腾讯云与阿里云竞争激烈:销售团队积极争取每一笔交易
  7. 性能测试-了解硬件之CPU(一)
  8. 写出常用的5个linux命令 并解释,【PHP面试题】写出尽可能多的Linux命令。
  9. 洛谷P3379 【模板】最近公共祖先(LCA)(树链剖分)
  10. C# 访问MongoDB 通用方法类
  11. 写给年轻的我们:我们工作到底为了什么
  12. 在VC下实现串口通讯
  13. 苹果隐私十年史:变与不变(3)产品与常识
  14. 后台管理系统PRD该怎么写?
  15. 【教程】批量号码归属地查询可以导出excel表格,手机号码归属地批量查询软件免费版
  16. 2021年12月青少年C/C++软件编程(四级)等级考试试卷及答案解析
  17. ZZL字符串匹配算法
  18. 两个主要问题将决定微信支付成败
  19. 使用CSS实现间隔线|(竖线)
  20. DOM的readyState属性

热门文章

  1. 【OS】Process Thread
  2. jquery prop('checked', true)解决attr('checked', true)不能选中radio问题
  3. cocos2dx进阶学习之屏幕适配
  4. 为什么div设置其border无效?
  5. 丹琦女神的对比学习新SOTA,在中文表现如何?我们补充实验后,惊了!
  6. 【GPT-3】除了缺少点创意,GPT-3写出了及格的大学毕业论文,只需20分钟
  7. 【论文笔记】中文词向量论文综述(二)
  8. Linux基本命令之grep命令常见用法
  9. 机器学习面试-处理回归问题
  10. 让DB2跑得更快——DB2内部解析与性能优化