Android权威编程指南笔记 第七章 UI fragment 与 fragment 管理器

第七章 UI fragment 与 fragment 管理器

由于activity不具备在运行时组装的灵活性,为了满足用户和设备的需求,故有了fragment。

一.UI fragment

  • activity管理fragment需要:
  1. 在其布局中为fragment的视图安排位置(可采用FrameLayout,用容器视图资源ID来标志)。
  2. 管理fragment实例的生命周期。
  • 创建UI fragment(继承Fragment):
  1. 定义用户界面布局文件
  2. 创建fragment类
  3. 实例化组件
    View view = inflater.inflate(
    		R.layout.fragment_crime_list,//布局的资源ID
        	container,// 视图的父视图
        	false);//以代码方式添加视图

二.fragment 管理器

  • FragmentManager管理:
  1. fragment队列
  2. fragment事务回退栈(trasaction)
import android.os.Bundle;
import android.support.annotation.LayoutRes;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v7.app.AppCompatActivity;

public abstract class SingleFragmentActivity extends AppCompatActivity {

    protected abstract Fragment createFragment();

    @LayoutRes
    protected int getLayoutResId() {
        return R.layout.activity_fragment;//占位,重写之后返回不同的资源
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(getLayoutResId());

        FragmentManager fm = getSupportFragmentManager();//获取FragmentManager
        Fragment fragment = fm.findFragmentById(R.id.fragment_container);//**容器视图资源ID**

        if (fragment == null) {
            fragment = createFragment();
            fm.beginTransaction()
                    .add(R.id.fragment_container, fragment)
                    .commit();
        }
    }
}

三.总结

  • fragment 事务用来添加、移除、替换、附加或分离fragment队列中的fragment,这是fragment动态组装重新组装的关键。
  • 可理解为:创建一个新的事务,执行了一个fragment添加操作,最后提交该事物。

四.相关小记

  • 容器视图资源ID的作用:
  1. 告诉FragmentManager ,fragment视图应该出现在activity的什么位置、
  2. 唯一标志FragmentManager队列中的fragment。
  • fragment是针对整个屏幕封装关键组件以方便复用。而使用定制视图实现零碎小组件复用(使用view子类)。
  • 使用支持库版fragment的应用,无论在哪台设备上运行,都会有相同的表现。

五.挑战练习

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值