fragment简单使用
来源:互联网 发布:可靠性分析软件下载 编辑:程序博客网 时间:2024/06/06 18:04
学习导航
第一节 fragment基础知识学习 :http://blog.csdn.net/bobo8945510/article/details/52788994
第三节 fragment的增删改学习 :http://blog.csdn.net/bobo8945510/article/details/52806916
第四节 fragment+viewpager:http://blog.csdn.net/bobo8945510/article/details/52821741
Fragment学习——fragment简单实现
实现一个简单的例子,流程如下:
一、添加两个类继承Fragment,并且为对应的fragment创建对应的xml布局。fragment01代码如下:
import android.app.Fragment;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;/** * Created by ENZ on 2016/10/11. */public class Fragment01 extends Fragment{ @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { //引用创建好的xml布局 View view = inflater.inflate(R.layout.fragment01,container,false); return view; }}
- 他对应的布局
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:textSize="50dp" android:text="我是第一页"> </TextView></LinearLayout>
- 布局效果:
二、那如何添加到activity中呢?看下面代码,我注释的很清楚。
import android.app.Activity;import android.app.Fragment;import android.app.FragmentManager;import android.app.FragmentTransaction;import android.os.Bundle;import android.view.View;import android.widget.Button;public class MainActivity extends Activity { private Button button01,button02; private Fragment fragment01; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); setview(); } private void setview() { button01 = (Button)findViewById(R.id.button01); button01.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //获取到FragmentManager,在V4包中通过getSupportFragmentManager, //在系统中原生的Fragment是通过getFragmentManager获得的。 FragmentManager FM = getFragmentManager(); //2.开启一个事务,通过调用beginTransaction方法开启。 FragmentTransaction MfragmentTransaction =FM.beginTransaction(); //把自己创建好的fragment创建一个对象 Fragment01 f1 = new Fragment01(); //向容器内加入Fragment,一般使用add或者replace方法实现,需要传入容器的id和Fragment的实例。 MfragmentTransaction.add(R.id.fragment_buju,f1); //提交事务,调用commit方法提交。 MfragmentTransaction.commit(); } }); button02 = (Button)findViewById(R.id.button02); button02.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //获取到FragmentManager,在V4包中通过getSupportFragmentManager, //在系统中原生的Fragment是通过getFragmentManager获得的。 FragmentManager FMs = getFragmentManager(); //2.开启一个事务,通过调用beginTransaction方法开启。 FragmentTransaction MfragmentTransactions = FMs.beginTransaction(); //把自己创建好的fragment创建一个对象 Fragment02 f2 = new Fragment02(); //向容器内加入Fragment,一般使用add或者replace方法实现,需要传入容器的id和Fragment的实例。 MfragmentTransactions.add(R.id.fragment_buju,f2); //提交事务,调用commit方法提交。 MfragmentTransactions.commit(); } }); }}
上面代码中用到了几个重要的知识点,我在上一篇博客有讲到
- 其实就用到了下面的几行代码,就可以把一个fragment添加到Activity中。
FragmentManager FMs = getFragmentManager();FragmentTransaction MfragmentTransactions = FMs.beginTransaction();Fragment02 f2 = new Fragment02();MfragmentTransactions.add(R.id.fragment_buju,f2);MfragmentTransactions.commit();
1、首先你需要了解getFragmentManager()是获取的什么,他的意思是什么?
2、通过获得的FMS对象,开启一个beginTransaction()事务,但是FragmentTransaction什么含义呢?
3、MfragmentTransactions.add()方法,添加fragment对象。
4、commit()方法的意思是什么?
5、请先了解fragment初识篇章:http://blog.csdn.net/bobo8945510/article/details/52788994
注意:很多初学者到这一步就会遇到一个问题,就是下面这样,添加两个fragment,造成了重叠,原因就是,两个fragment布局效果都布置到了主布局中造成的,效果如下
怎么解决这个问题呢?其实有两个方法来解决!
第一种: (建议用此方法,简单)
只需要把 add()方法改为replace()即可,他的意思就是如果主布局已经被某个fragment使用过了,再有新的fragment布局,就会把老的fragment布局替换掉。
第二种:
判断主布局是否被使用,在添加fragment时下面代码
if(FMs.findFragmentById(R.id.fragment_buju)==null){ //如果没有使用过 MfragmentTransactions.add(R.id.fragment_buju,f2); }else { //如果有使用过,就把老的fragment替换掉。 MfragmentTransactions.replace(R.id.fragment_buju,f2); }
效果图如下:
demo地址,http://download.csdn.net/detail/bobo8945510/9651004
代码中我使用的是第二种方法,建议用第一种!
1 0
- Fragment的简单使用
- Android Fragment简单使用
- Fragment的简单使用
- Fragment简单使用
- Fragment的简单使用
- Fragment 的简单使用
- 简单的Fragment使用
- Fragment使用简单示例
- fragment简单使用
- fragment简单使用
- Fragment的简单使用
- Fragment的简单使用
- fragment简单使用
- 39 Android fragment 简单使用
- android Fragment的简单使用
- fragment使用的简单示例
- Android fragment的简单使用
- android Fragment 简单的使用
- Date 对象的方法简介
- 边框与背景颜色
- redis 常用方法
- 遍历Map的四种方法
- 8天学通MongoDB——第七天 运维技术
- fragment简单使用
- C# 导入Excel文件和数据库文件的对比
- Android系统启动过程
- 关于IE6/IE7中浮动元素margin-bottom值失效的问题解决办法。
- 【深度学习】残差结构:1000层网络
- oracle定时备份脚本
- HttpClientUtil-用于后台发起请求
- php 400 ,500错误
- 51nod oj 1262 扔球 【容斥定理||欧拉定理】