Android开发之创建Fragment
来源:互联网 发布:知乎和百度有什么区别 编辑:程序博客网 时间:2024/06/05 19:24
Android开发之创建Fragment
前言
如何来理解fragment?
我们可以将fragment当成activity中一个模块化的部分,它拥有自己的生命周期,接收自己的输入事件,可以在activity运行过程中添加或者移除,类似于子activity,你可以在不同的activities里面重复使用。
Note: 如果的你的APP的最低API版本是11或11+,你不必使用Support Library,你可以直接使用API框架里面的Fragment,这里主要是基于Support Library的API,Support Library有一个特殊的包名,有时候与平台版本的API名字有些轻微的不一样。
在这之前,你必须先让你的项目引用Support Library。如果你没有使用过Support Library(这里不具体讲解)。当然,你也可以使用包含action bar的 v7 appcompat library。v7 appcompat library 兼容Android2.1(API level 7),也包含了Fragment APIs。
创建fragment
创建一个fragment,首先需要继承Fragment类,然后在关键的生命周期方法中插入你APP的逻辑,就像activity一样。
其中一个区别是当你创建Fragment的时候,你必须重写onCreateView()回调方法来定义你的布局。事实上,这是使Fragment运行起来,唯一一个需要你重写的回调方法。比如,下面是一个自定义布局的示例fragment.
import android.os.Bundle;import android.support.v4.app.Fragment;import android.view.LayoutInflater;import android.view.ViewGroup;public class ArticleFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment return inflater.inflate(R.layout.article_view, container, false); }}
Note:就像activity一样,当fragment从activity添加或者移除、当activity生命周期发生变化时,fragment应该是实现生命周期回调来管理它的状态。例如,当activity的onPause()被调用时,它里面的所有fragment的onPause()方法也会被触发。
用XML将fragment添加到activity
fragments是可以重用的,模块化的UI组件,每一个Fragment的实例都必须与一个FragmentActivity关联。你可以在activity的XML布局文件中定义每一个fragment来实现这种关联。
Note: FragmentActivity是Support Library提供的一个特殊activity ,用来在API11版本以下的系统上处理fragment。如果你APP中的最低版本大于等于11,你可以使用普通的Activity。
下面是一个XML布局的例子,当屏幕被认为是large(用目录名称中的large字符来区分)时,它在布局中增加了两个fragment.
res/layout-large/news_articles.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent"> <fragment android:name="com.example.android.fragments.HeadlinesFragment" android:id="@+id/headlines_fragment" android:layout_weight="1" android:layout_width="0dp" android:layout_height="match_parent" /> <fragment android:name="com.example.android.fragments.ArticleFragment" android:id="@+id/article_fragment" android:layout_weight="2" android:layout_width="0dp" android:layout_height="match_parent" /></LinearLayout>
然后将这个布局文件用到你的activity中。
import android.os.Bundle;import android.support.v4.app.FragmentActivity;public class MainActivity extends FragmentActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.news_articles); }}
如果你用的是 v7 appcompat library,你的activity应该改为继承ActionBarActivity,ActionBarActivity是FragmentActivity的一个子类
Note:当你用XML布局文件的方式将Fragment添加进activity时,你的Fragment是不能被动态移除的。如果你想要在用户交互的时候把fragment切入与切出,你必须在activity启动后,再将fragment添加进activity
- Android开发之创建Fragment
- android 开发之 fragment与activity 创建菜单的区别
- Android开发入门-《创建Fragment》
- Android开发之Fragment
- android开发之Fragment
- Android开发之fragment
- Android之Fragment创建方式
- Android官方开发文档Training系列课程中文版:使用Fragment构建动态UI之Fragment创建
- Android 开发 之 Fragment 详解
- Android 开发 之 Fragment 详解
- Android 开发 之 Fragment 详解
- 【Android开发】之Fragment生命周期
- Android 开发 之 Fragment 详解
- Android 开发 之 Fragment 详解
- Android 开发 之 Fragment 详解
- Android 开发 之 Fragment 详解
- Android开发之Fragment基础
- Android开发之Fragment回退栈
- swift uinavigationController 视图控制器切换(二)
- 手动刷微信运动步数
- swift UINavigationController属性设置
- 内联标签和块标签
- Fragment第二次执行数据为空
- Android开发之创建Fragment
- 以人为本 | 如何保证高质量的软件交付
- swift 设置 navigation左右两侧按钮
- [LeetCode15]3Sum
- TCP/IP协议基本概括+ARP协议详解+DNS协议详解---Linux学习笔记
- [LeetCode] Remove Nth Node From End of List
- swift UITabBarController标签栏控制器
- CX3 使用GPIO来显示MIPI解析结果【新手入门手册】
- request method