Android06-Fragment碎片

¨Fragment简介

¨Fragment生命周期

¨动态加载碎片Fragment Manager的使用

1.Fragment表示Activity中的一种行为或者一部分用户界面。

可以将Fragment看做Activity中的一个模块单元,可以在不同的Activity中重用

public class RightFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.right_fragment, container, false);
return view;
} }

inflate方法的三个参数:

¨布局文件的id

¨ViewGroup类型的对象,Fragment所在的容器对象(例如一个布局对象)

¨布尔类型

2.动态添加碎片

在活动布局中使用FrameLayout,在运行时将FrameLayout替换为需要的碎片

动态添加碎片主要分为 5 步。

  1. 创建待添加的碎片实例。
  2. 获取到 FragmentManager,在活动中可以直接调用 getFragmentManager()方法得到。
  3. 开启一个事务,通过调用beginTransaction()方法开启。
  4. 向容器内加入碎片,一般使用 replace()方法实现,需要传入容器的 id 和待添加的碎片实例。
  5. 交事务,调用 commit()方法来完成。
  6. public void onClick(View v) {
                switch (v.getId()) {
                case R.id.button:
                    AnotherRightFragment fragment = new AnotherRightFragment();
                    FragmentManager fragmentManager = getFragmentManager();
                    FragmentTransaction transaction = fragmentManager.
        beginTransaction();
                    transaction.replace(R.id.right_layout, fragment);
                    transaction.commit();
                    break;
                default:
                    break;
    } }
    

    管理Fragment

    使用FragmentManager类来管理Fragment,使用Activity的getFragmentManager方法来获取FragmentManager对象

      

  7. 碎片的生命周期

    1. 运行状态 当一个碎片是可见的,并且它所关联的活动正处于运行状态时,该碎片也处于运行状态。

    2. 暂停状态 当一个活动进入暂停状态时(由于另一个未占满屏幕的活动被添加到了栈顶),与它相关联的可见碎片就会进入到暂停状态。

    3. 停止状态

    当一个活动进入停止状态时,与它相关联的碎片就会进入到停止状态。或者通过调 用 FragmentTransaction 的 remove()、replace()方法将碎片从活动中移除,但有在事务 交之前调用 addToBackStack()方法,这时的碎片也会进入到停止状态。总的来说,进入 停止状态的碎片对用户来说是完全不可见的,有可能会被系统回收。
    4. 销毁状态

    碎片总是依附于活动而存在的,因此当活动被销毁时,与它相关联的碎片就会进入
    到销毁状态。或者通过调用 FragmentTransaction 的 remove()、replace()方法将碎片从活
    动中移除,但在事务 交之前并没有调用 addToBackStack()方法,这时的碎片也会进入
    到销毁状态。

    1. onAttach()

       当碎片和活动建立关联的时候调用。
      
    2. onCreateView()
      为碎片创建视图(加载布局)时调用。
      
    3. onActivityCreated()
      确保与碎片相关联的活动一定已经创建完毕的时候调用。
      
    4. onDestroyView()
      当与碎片关联的视图被移除的时候调用。
      
    5. onDetach()
      当碎片和活动解除关联的时候调用。

时间: 2024-08-09 06:23:25

Android06-Fragment碎片的相关文章

Fragment(碎片)(1)

莫愁前路无知己,天下谁人不识君. --高适<别董大二首> Fragment 碎片是什么 Fragment的简单使用 导入Fragment包的选择 supportv4appFragment androidappFragment Fragment的动态使用1 Fragment的动态使用2 在Fragment中模拟返回栈 FragmentTransaction的方法 Fragment进阶使用 源码 参考 Fragment 碎片(Fragment)是一种可以嵌入在活动当中的UI片段,它能让程序更加合理

动态添加Fragment碎片

1.      创建待添加的碎片实例. 2.      获取到FragmentManager,在活动中可以直接调用getFragmentManager()方法得到. 3.      开启一个事务,通过调用beginTransaction()方法开启. 4.      向容器内加入碎片,一般使用replace()方法实现,需要传入容器的id和待添加的碎片实例 5.      提交事务,调用commit()方法来完成 package com.jia.fragmenttest; import andr

Android实习札记(4)---Fragment(碎片)基本概念解析

Android实习札记(4)---Fragment(碎片)基本概念解析 转载请注明出处:coder-pig Fragment相信大家都不会陌生吧,侧滑啦,抽屉效果啦,DialogFragment啊等等,一堆地方都会 用到Fragment,对于Fragment的基本概念在前面的文章中其实已经给出的了,这里回顾一遍, 温故而知新嘛,同时结合Google官方的api进行复习! 1)什么是Fragment以及它的生命周期: 核心要点: 1)3.0版本后引入,即minSdk要大于11 2)Fragment

android UI:底部菜单栏的学习与制作——Fragment碎片一

碎片(Fragment) 嵌入与活动中的UI片段,为了合理的分配布局而存在,这是我的简单理解.多用于兼顾手机与平板的UI,也适用于灵活高级的UI制作. Demo 简单的按键切换两片不同的Demo 新建left_fragment.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/

Fragment碎片的创建和动态更新

Fragment,在平板应用中较为参见,把视图分为两个甚至多个模块. 一,一个简单的fragment 1.创建两个局部文件,用于等待被调用 (1)left_fragment (2)right_fragment 2.分别创建两个继承于fragment类的类 (1)leftFragment(加载xml文件) public class LeftleftFragment extends Fragment { @Nullable @Override public View onCreateView(Lay

用fragment碎片动态创建UI

觉得自己还是十分的浮躁,总想快点学习完毕,学到一些很漂亮的UI控件,本来最近应该弄文件下载的,但是又去弄fragment了 不过根据我自己的理解的话,我觉得fragment就像一个个的view可以通过FragmentMannager对主界面的fragment进行管理 1.要创建一个碎片,应该先定义其布局文件,现在我定义了一个left_fragment.xml布局文件 1 <?xml version="1.0" encoding="utf-8"?> 2 &

fragment 碎片整理

activity_m1.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="matc

Fragment(碎片)

主界面layout文件 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:app="http://schemas.android.com/apk/res-auto" 4 xmlns:tools="http

Android开发中如何实现外部其他Activity类与指定fragment碎片的相互跳转

先说一下这个问题产生的背景 Activity A中有四个fragment,分别是 a b c d,默认显示的是fragment a.在开发过程中,fragment d中需要和外部Activity进行跳转,将这个外部Activity命名为B吧... 我需要从d中跳转到B中,完成一些设置,然后再从B中的返回按钮回到d.但是使用startActivity()方法的结果是:可以实现从d到B的跳转,但是从B跳到d出现了问题. 网上搜索了一下相关问题的解决方案(博文) 方案一: 要考虑fragment的复用