Fragment基本使用

作者: Chunyang1988 | 来源:发表于2016-07-25 10:37 被阅读101次

Fragment不能独立存在,它必须嵌入到activity中,而且Fragment的生命周期直接受所在的activity的影响。例如:当activity暂停时,它拥有的所有的Fragment们都暂停了,当activity销毁时,它拥有的所有Fragment们都被销毁。


此文章没有任何讲解,只是纯粹的代码文档,列举几种方法,忘记的时候方便查看巩固使用的。

方法一:

在activity的layoutxml文件中声明fragment**

<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:baselineAligned="false">

   <fragment
     android:id="@+id/titles"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:layout_weight="4"
     class="cn.eoe.first.fragment.LeftFragment"/>

   <fragment
     android:id="@+id/details"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:layout_weight="1"
     class="cn.eoe.first.fragment.RightFragment"/>

</LinearLayout>



class= "cn.eoe.first.fragment.LeftFragment" 换成
android:name="cn.eoe.first.fragment.LeftFragment"也可以 

方法二:在代码中添加fragment到一个ViewGroup**

   //先获得Fragment的管理
    FragmentManager fragmentManager = getFragmentManager();
   //所有Fragment的事务都是通过FragmentTransaction来完成,在通过管理者获取事务对象
    FragmentTransaction fragmentTransaction = fragmentManager
                     .beginTransaction();
   //实例化要添加的Fragment
    MyFragment fragment =  new  MyFragment();
   //添加Fragment通过layout中的id,实例对象,还有tag标签
     fragmentTransaction.add(R.id.fragment_container1, fragment,"fragment");
    //提交
    fragmentTransaction.commit();

或者

    FragmentTransaction tx =getSupportFragmentManager().beginTransaction();
    tx.replace(R.id.main, Fragment.instantiate(MyHomeSlidingActivity.**this**,
               "com.joymis.audio.FragmentmyhomeInfo"));
    tx.commit();

其中 "com.joymis.audio.FragmentmyhomeInfo"的代码

    public   class  FragmentmyhomeInfo  extends  Fragment {

   @Override
     public  View onCreateView(LayoutInflater inflater, ViewGroup container,
              Bundle savedInstanceState) {
         View view = inflater.inflate(R.layout.layout_myhome_fragment, container,**false**);

           return  view;
   }

   @Override
     public    void  onDestroyView() {

           super.onDestroyView();
     }

}

layout中的布局为

  <FrameLayout
     android:id="@+id/fragment_container1"
     android:layout_width="match_parent"
     android:layout_height="wrap_content" />

其他

要管理fragment们,需使用FragmentManager,要获取它,需在activity中调用方法getFragmentManager()。
你可以用FragmentManager来做以上事情:
1使用方法findFragmentById()或findFragmentByTag(),获取activity中已存在的fragment们。
2使用方法popBackStack()从activity的后退栈中弹出fragment们(这可以模拟后退键引发的动作)。
3用方法addOnBackStackChangedListerner()注册一个侦听器以监视后退栈的变化。

相关文章

  • Fragment基本使用方法

    Fragment基本使用方法 fragment生命周期 fragment依赖于Activity fragment通...

  • Fragment基本使用

    Fragment不能独立存在,它必须嵌入到activity中,而且Fragment的生命周期直接受所在的activ...

  • Fragment基本使用

    1. Fragment概述 1.1 介绍 Fragment是一种可以嵌入在活动中的UI片段,能够让程序更加合理和充...

  • Fragment基本使用

    Fragment概述 介绍 Fragment是一种可以嵌入在活动中的UI片段,能够让程序更加合理和充分地利用大屏幕...

  • Fragment详细解析

    Android Fragment 使用解析 标签: Android 1.基本概念 Fragment,简称碎片,是A...

  • android-碎片布局

    基本使用 首先创建对应的碎片New => Fragment => Fragment(Blank)取消勾选inclu...

  • Fragment教程之Fragment基本使用

    静态使用Fragment 主要有以下两个步骤:1、继承Fragment,重写onCreateView决定Fragm...

  • Fragment的基本使用方法与通信

    Fragment的基本使用方法与通信 一、Fragment知识概要 二、Fragment的静态加载 要导入v4的包...

  • Fragment-基本使用

    添加Fragment的方式: 静态添加1.1:在Activity的layout中通过添加指定的...

  • Fragment的基本使用

    本来是打算一周至少写两篇博客的,但是这周无奈乱七八糟的事儿太多,今天总算是找了个时间来写一篇博客。就记录下平时没怎...

网友评论

    本文标题:Fragment基本使用

    本文链接:https://www.haomeiwen.com/subject/lvifjttx.html