Fragment的基本用法

一、Fragment主要用到的API:  

  1.Fragment 类-----用来创建碎片

  2.FragmentManager 类 ----为管理Activity中Fragment,用于Activity与Fragment之间进行交互.

  3.FragmentTransaction 类 ---用碎片管理器创建碎片事务,用碎片事务来执行碎片的添加,移除,替换,显示,隐藏等操作

二、fragment 可认为是一个轻量级的Activity,但不同与Activity,它是要嵌到Activity中来使用的,它用来解决设备屏幕大小的不同,主要是充分利用界面上的空间,如平板上多余的空间。一个Activity可以插入多个Fragment,可以认为Fragment就是Activity上的一个View。

  

三、Fragment的基本使用步骤

fragment 的布局文件===》fragment子类中用onCreateView()加载该布局===》在相应的Activity的布局文件中引用fragment===》在Activity中显示

上代码:

1.fragment 的布局文件:

myfragment.xml

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:orientation="vertical" >
 6
 7     <TextView
 8         android:id="@+id/textView1"
 9         android:layout_width="wrap_content"
10         android:layout_height="wrap_content"
11         android:text="我是碎片的视图"
12         android:textSize="30sp"/>
13 </LinearLayout>

2.fragment子类中用onCreateView()加载该布局:建一个Fragment的子类MyFrag,

 1 package com.robin.fragdemo.frag;
 2
 3 import com.robin.fragdemo.R;
 4 import android.app.Fragment;
 5 import android.os.Bundle;
 6 import android.view.LayoutInflater;
 7 import android.view.View;
 8 import android.view.ViewGroup;
 9
10
11 public class MyFrag extends Fragment{
12     @Override//用加载器inflater把fragment 的布局文件myfrag.xml变成一个View.
13     public View onCreateView(LayoutInflater inflater, ViewGroup container,
14             Bundle savedInstanceState) {
15         View view=inflater.inflate(R.layout.myrag, container,false);
16         return view;
17     }
18 }

3.在相应的Activity的布局文件中引用fragment

  MainActivity的布局文件 face.xml 中引用fragment:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:orientation="vertical" >
 6
 7     <!-- fragment不是view只是占位符 -->
 8     <fragment
 9         android:id="@+id/fragment"
10         android:name="com.robin.myfrag.frag.MyFragment"
11         android:layout_width="match_parent"
12         android:layout_height="wrap_content"/>
13 </LinearLayout>
com.robin.myfrag.frag.MyFrag------MyFrag的全类名。

4.在Activity中显示

 1 package com.robin.myfrag.act;
 2
 3 import com.robin.myfrag.R;
 4 import android.app.Activity;
 5 import android.os.Bundle;
 6 import android.util.Log;
 7
 8 public class MainAct extends Activity{
 9     @Override
10     protected void onCreate(Bundle savedInstanceState) {
11         super.onCreate(savedInstanceState);
12         setContentView(R.layout.face);
13     }
14 }

这就是Fragment的基本使用步骤。

时间: 2024-08-24 12:07:04

Fragment的基本用法的相关文章

Android Fragment和FragmentActivity用法

Android Fragment是Android4.0以上才有的:而FragmentActivity是为了兼容4.0以下版本的Fragment使用的. 所以如果你想兼容4.0以下Android版本使用Fragment的话,框架Activity需要继承FragmentActivity,FragmentActivity这个类是在android.support.v4.app.FragmentActivity里的. 下面介绍2种用法: 1.继承Activity的. (这个只针对4.0以上的Android

ViewPage+Fragment的使用用法

一.概述 从前面几篇文章,我们知道,实现ViewPager是要有适配器的,我们前面用的适配器是PagerAdapter,而对于fragment,它所使用的适配器是:FragmentPagerAdapter.先看看官方对于这个类的解释:(英文下面有中文解释) 原文: Class Overview Implementation of PagerAdapter that represents each page as a Fragment that is persistently kept in th

android关于fragment的构造函数用法建议

错误信息 Avoid non-default constructors in fragments: use a default constructor plus Fragment#setArguments(Bundle) instead: 因为原生的fragment的管理和在屏幕上显示,是推荐不要在任何继承fragment类里面,去创建类的构造方法,否则在运行时,会出现问题.如果你的fragment没有声明任何的构造函数,系统会自动帮你创建一个构造.除非你有声明一个带参的构造函数,才需要声明一个

有关文档碎片(document fragment)的用法

通常情况下修改.删除或者增加DOM元素.更新DOM会导致浏览器重新绘制屏幕,也会导 致reflow,这样会带来巨大的开销.我们通常解决这的办法尽量减少更新DOM,这也就意 味着将DOM的改变分批处理,并在"活动"文档树之外执行这些更新. 当需要创建一个相对比较大的子树,应该在子树完全创建之后再将子树添加到DOM树中, 这时采用文档碎片技术来容纳所有的节点. //反例子 //在创建时立即添加节点 var p,t; p = document.createElement('p'); t =

Android Fragment 真正的完全解析

出处: 自从Fragment出现,曾经有段时间,感觉大家谈什么都能跟Fragment谈上关系,做什么都要问下Fragment能实现不~~~哈哈,是不是有点过~~~ 本篇博客力求为大家说明Fragment如何产生,什么是Fragment,Fragment生命周期,如何静态和动态的使用Fragment,Fragment回退栈,Fragment事务:以及Fragment的一些特殊用途,例如:没有布局的Fragment有何用处?Fragment如何与Activity交互?Fragment如何创建对话框?

【Android自学日记】【转】Android Fragment 真正的完全解析(下)

上篇博客中已经介绍了Fragment产生原因,以及一些基本的用法和各种API,如果你还不了解,请看:Android Fragment 真正的完全解析(上). 本篇将介绍上篇博客提到的:如何管理Fragment回退栈,Fragment如何与Activity交互,Fragment与Activity交互的最佳实践,没有视图的Fragment的用处,使用Fragment创建对话框,如何与ActionBar,MenuItem集成等~~ 1.管理Fragment回退栈 类似与Android系统为Activi

android fragment 博客 学习记录

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37992017 上篇博客中已经介绍了Fragment产生原因,以及一些基本的用法和各种API,如果你还不了解,请看:Android Fragment 真正的完全解析(上). 本篇将介绍上篇博客提到的:如何管理Fragment回退栈,Fragment如何与Activity交互,Fragment与Activity交互的最佳实践,没有视图的Fragment的用处,使用Fragment创

Android应用开发:Fragment与大型数据缓存

引言 在Android应用开发:Fragment的非中断保存setRetaineInstance一文中已经介绍过了如何让Fragment不随着Activity销毁从而保存数据的方法.在移动应用程序的架构设计中,界面与数据即不可分割又不可混淆.在绝大部分的开发经历中,我们都是使用Fragment来进行界面编程,即使保存数据基本上也只是界面相关控件的数据,很少做其他的数据保存,毕竟这样与开发原则相背,而今天这一篇博客就要来介绍一下Fragment的另类用法,只是用来保存数据而没有任何界面元素. 实现

Android Fragment 真正的完全解析(下)

Android Fragment 真正的完全解析(下) 标签: AndroidFragmentDialogFragmentMenuItem 目录(?)[-] 管理Fragment回退栈 Fragment与Activity通信 Fragment与Activity通信的最佳实践 如何处理运行时配置发生变化 Fragmeny与ActionBar和MenuItem集成 没有布局的Fragment的作用 使用Fragment创建对话框 转载请标明出处:http://blog.csdn.net/lmj623