Android Fragment之间的切换
效果图:
图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之间的切换相关推荐
- 安卓开发fragment之间的切换_Android开发必会的组件化技术—Android架构和提升必备...
很多时候我们开发的时候,都需要新建项目,然后一个个底层模块去写,比如各种常见View,工具类,缓存模块等,经常进行这种重复的搬砖工作.主要还是因为我们在平时的开发过程中就没有注意分层.分模块.资源随意 ...
- android fragment界面滑动切换效果,Android App中使用ViewPager+Fragment实现滑动切换效果...
在android应用中,多屏滑动是一种很常见的风格,没有采用viewpager的代码实现会很长,如果采用ViewPager,代码就会短很多,但是使用ViewPager也有弊端:需要导入android- ...
- android fragment面试,Android fragment之间传递数据的方式?
方法一: 1.在MainFragment中设置一个setData()方法,在方法中设置更改按钮名称; //MainFragment.java文件中public void setData(String ...
- android fragment+ FragmentTabHost+viewpager 切换状态不保存的问题
转载请注明出处:http://blog.csdn.net/djy1992/article/details/46674169 @author dujinyang 难得有时间上来写博客. fragment ...
- 外部Activity和fragment之间的切换,传值
下,Activity A /*下6h,*//*传值*//*跳转到Activity的Fragment中*/ Intent intent = new Intent(); intent.putExtra(& ...
- android tab之间滑动切换界面功能
1. onTouchListener(); //捕捉touch事件,比如说onDown 需要将可滑动的控件加上两个方法:(1)view.setOnTouch ...
- 基于android的网络音乐播放器-添加viewpager和fragment实现滑动切换多个界面(二)
作为android初学者,最近把疯狂android讲义和疯狂Java讲义看了一遍,看到书中介绍的知识点非常多,很难全部记住,为了更好的掌握基础知识点,我将开发一个网络音乐播放器-EasyMusic来巩 ...
- android tab pageview,Android Fragment在ViewPager中到底经历了什么?
2017年05月30 最后的懒加载写的不好,推荐请叫我大苏同学写的Fragment懒加载博客, [Android]再来一篇Fragment的懒加载(只加载一次哦) 在大苏同学的博客评论里,看到了另一个 ...
- Android中fragment之间和Activity的传值、切换
介绍: 功能介绍:通过一个activity下方的三个按钮,分别是发送消息(sendButton).聊天记录(chatButton).常用语(commonButton).当单击按钮是,来切换上方的fra ...
- Android使用Fragment来实现TabHost的功能(解决切换Fragment状态不保存)以及各个Fragment之间的通信...
以下内容为原创,转载请注明:http://www.cnblogs.com/tiantianbyconan/p/3360938.html 如新浪微博下面的标签切换功能,我以前也写过一篇博文(http:/ ...
最新文章
- Servlet(一)
- 第十六届智能车竞赛 | 单车拉力组浅析
- Per-Title编码优化
- Page cache和Buffer cache
- 21. GD32F103C8T6入门教程-flash/fmc连续读写操作
- 腾讯云与阿里云竞争激烈:销售团队积极争取每一笔交易
- 性能测试-了解硬件之CPU(一)
- 写出常用的5个linux命令 并解释,【PHP面试题】写出尽可能多的Linux命令。
- 洛谷P3379 【模板】最近公共祖先(LCA)(树链剖分)
- C# 访问MongoDB 通用方法类
- 写给年轻的我们:我们工作到底为了什么
- 在VC下实现串口通讯
- 苹果隐私十年史:变与不变(3)产品与常识
- 后台管理系统PRD该怎么写?
- 【教程】批量号码归属地查询可以导出excel表格,手机号码归属地批量查询软件免费版
- 2021年12月青少年C/C++软件编程(四级)等级考试试卷及答案解析
- ZZL字符串匹配算法
- 两个主要问题将决定微信支付成败
- 使用CSS实现间隔线|(竖线)
- DOM的readyState属性
热门文章
- 【OS】Process Thread
- jquery prop('checked', true)解决attr('checked', true)不能选中radio问题
- cocos2dx进阶学习之屏幕适配
- 为什么div设置其border无效?
- 丹琦女神的对比学习新SOTA,在中文表现如何?我们补充实验后,惊了!
- 【GPT-3】除了缺少点创意,GPT-3写出了及格的大学毕业论文,只需20分钟
- 【论文笔记】中文词向量论文综述(二)
- Linux基本命令之grep命令常见用法
- 机器学习面试-处理回归问题
- 让DB2跑得更快——DB2内部解析与性能优化