美文网首页
Fragment学习

Fragment学习

作者: Crane_FeiE | 来源:发表于2018-09-10 07:55 被阅读0次

Fragment是什么

  • 一种可以切入在活动当中的UI片段,让程序更加合理和充分的利用大屏幕的空间

静态添加Fragment

在activity的layout文件中定义好fragment的位置,设置android:name属性

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".FragmentTestActivity">
    <fragment
        android:id="@+id/fragment_top"
        android:name="com.example.crane.myfirstline.TopFragment"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" />
    <fragment
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="5" />

</LinearLayout>

image.png

动态添加Fragment

直接上代码

    /**
     * this function is used to inflate a fragment into a framelayout
     */
    private void replaceBottomFragment(Fragment fragment) {
        //put a fragment into frame
        FragmentManager fm = getSupportFragmentManager();
        FragmentTransaction ft = fm.beginTransaction();
        ft.replace(R.id.layout_bottom, fragment, "lyh");
        //add back stack 增加返回栈
        ft.addToBackStack(null);
        ft.commit();
    }

Fragment与Activity的通讯

  • 直接通过调用getActivity()方法来获取Activity的上下文
  • 在onAttach的时候保存传入的Activity

Fragment生命周期

  • onAttach():执行该方法时,Fragment与Activity已经完成绑定,该方法有一个Activity类型的参数,代表绑定的Activity,这时候你可以执行诸如mActivity = activity的操作。
  • onCreate():初始化Fragment。可通过参数savedInstanceState获取之前保存的值。
  • onCreateView():初始化Fragment的布局。加载布局和findViewById的操作通常在此函数内完成,但是不建议执行耗时的操作,比如读取数据库数据列表。
  • onActivityCreated():执行该方法时,与Fragment绑定的Activity的onCreate方法已经执行完成并返回,在该方法内可以进行与Activity交互的UI操作,所以在该方法之前Activity的onCreate方法并未执行完成,如果提前进行交互操作,会引发空指针异常。
  • onStart():执行该方法时,Fragment由不可见变为可见状态。
  • onResume():执行该方法时,Fragment处于活动状态,用户可与之交互。
  • onPause():执行该方法时,Fragment处于暂停状态,但依然可见,用户不能与之交互。
  • onSaveInstanceState():保存当前Fragment的状态。该方法会自动保存Fragment的状态,比如EditText键入的文本,即使Fragment被回收又重新创建,一样能恢复EditText之前键入的文本。
  • onStop():执行该方法时,Fragment完全不可见。
  • onDestroyView():销毁与Fragment有关的视图,但未与Activity解除绑定,依然可以通过onCreateView方法重新创建视图。通常在ViewPager+Fragment的方式下会调用此方法。
  • onDestroy():销毁Fragment。通常按Back键退出或者Fragment被回收时调用此方法。
  • onDetach():解除与Activity的绑定。在onDestroy方法之后调用。
lifecycle of fragment

作业:

编写简易新闻应用

相关文章

  • Fragment(四)——Fragment动态使用

    前言 在学习完Fragment的静态使用和Fragment常用API后,这节我们就来学习下Fragment的动态加...

  • Fragment学习笔记(基础篇)

    Fragment学习笔记 一、Fragment的定义 Fragment是在Android 3.0才开始引入的,它能...

  • Fragment的简单使用及相互之间数据的传递

    1.1.简述Fragment Fragment是Android最基本,最重要的基础概念之一。学习Fragment首...

  • Fragment使用总结

    title: Fragment使用总结tags: 学习笔记,Android,Fragment 原文:Fragme...

  • Fragment学习

    碎片是一种可以嵌入在活动中的UI片段,能让程序更加合理和充分地利用大屏幕的空间,因此在平板中应用的很广泛.碎片(f...

  • Fragment学习

    Fragment是什么 一种可以切入在活动当中的UI片段,让程序更加合理和充分的利用大屏幕的空间 静态添加Frag...

  • Fragment学习

    1、Fragment回退栈管理 Activity是由任务栈管理的,遵循先进后出的原则,Fragment也可以实现类...

  • Fragment学习

    流程:fragment->FragmentManagerImpl->FragmentController->Fra...

  • Fragment学习

    Fragment简介 Fragment(翻译为片段)可以作为Activity 布局的一部分,必须依托于Activi...

  • Fragment学习总结

    Fragment学习总结 Fragment:碎片。可以看成Activity的一个控件,必须依赖于Activity才...

网友评论

      本文标题:Fragment学习

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