【官网最新翻译】创建一个片段(fragment)

http://developer.android.com/training/basics/fragments/creating.html


你能想到一个片段作为活动(activity)的一个模块化部分,它有它自己的生命周期,接收它自己的输入事件,并且可以在活动运行时添加或删除(有点像一个“子活动” ,你可以重复使用在不同的活动中)。本课介绍如何使用支持库来扩展片段类,以便您的应用程序仍然兼容使用系统版本低至Android 1.6的安卓设备。


注意:如果您决定 应用程序需要支持的最低API级别是11或更高,则不需要使用支持库,可以改用内置的片段类和相关的API框架的。要知道,这节课的重点是使用支持库中的API ,它使用一个特定的软件包签名,有时在不同平台版本中API的名字稍有不同。

在开始这一课之前,你必须设置你的Android项目来使用支持库。如果你以前没有用过支持库,按照

支持库安装文档来设置你的安卓项目来使用v4支持库。不过你可以换成v7库来在你的活动中包含操作栏,v7库兼容最低安卓版本2.1,也包括fragment API。


创建一个片段类(Fragment class)

要创建一个fragment,首先继承Fragment类,然后重写关键生命周期方法来插入你的应用程序逻辑,和你写一个Activity类类似。

创建一个片段时,一个区别是,你必须使用onCreateView ( )回调来定义布局。其实,这是你需要为了得到一个片段运行的唯一的回调。例如,这里有一个简单的片段,指定其自己的布局:

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.ViewGroup;

publicclassArticleFragmentextendsFragment{
   
@Override
   
publicView onCreateView(LayoutInflater inflater,ViewGroup container,
       
Bundle savedInstanceState){
       
// Inflate the layout for this fragment
       
return inflater.inflate(R.layout.article_view, container,false);
   
}
}

就像一个Activity,一个Fragment应该实现其他的生命周期回调,让您可以管理它的状态,因为它是从Activity和其生命周期状态之间的转换活动添加或删除。例如,当Activity的onPause ( )方法被调用时,在Activity中的任何Fragment也收到onPause ( ) 回调。


有关片段的生命周期和回调方法的详细信息可参考片段开发人员指南。


使用XML添加片段到一个活动
片段是可重用的,模块化的UI组件,一个片段类的每个实例必须与一个父FragmentActivity相关。您可以通过活动布局的XML文件定义每个片段来实现这种关联。

注: FragmentActivity是支持库提供API级别是11或更早的系统来处理片段的特殊活动。如果您支持的最低系统版本的API级别是11或更高版本,那么你可以使用一个普通的活动。

下面是添加两个片段到活动的一个布局文件 例子

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>
讲布局应用到你的活动中
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);
    }
}
如果你使用的是2013 APPCOMPAT库,你的活动而应该继承ActionBarActivity ,这是FragmentActivity的子类

注意:当您通过定义布局XML文件中的方式添加片段到活动的布局,你不能在运行时删除该片段。如果您打算 在用户交互过程中换入或换出你的片段,您必须在 活动第一次启动时将片段添加到活动。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值