第二行代码第四章笔记

来源:互联网 发布:鲍登学院 知乎 编辑:程序博客网 时间:2024/05/12 01:29

第四章 Fragment

Fragment是什么

Fragment是一种可以嵌入在活动当中的UI片段,建议使用support-v4库中的Fragment,因为它可以让Fragment在所有Android系统版本中保存功能一致性。

Fragment的使用方式

Fragment的简单用法

  1. 新建两个Fragment布局文件

  2. 并在各自的Fragment代码文件中复写onCreateView()方法,然后通过LayoutInflater的inflate()方法将刚才定义的Fragment布局文件动态加载进来。如:View view = inflater.inflate(R.layout.xxx, container, false)

  3. 在Activity布局文件中添加两个Fragment控件,同时还需要通过android:name属性来显示指明要添加的Fragment类名,这里一定要将类的包名也加上

动态添加Fragment

  1. 创建待添加的Fragment实例

  2. 获取FragmentManager,在Activity中科院直接通过调用getSupportFragmentManager()方法得到

  3. 开启一个事物,通过调用beginTransaction()方法开启

  4. 像容器内添加或替换碎片,一般使用replace()方法实现,需要传入容器的id和待添加到Fragment实例

  5. 提交事务,调用commit()方法来完成

在Fragment中模拟返回栈,FragmentTransaction中提供了一个addToBackStack()方法,可以用于将一个事物添加到返回栈中

transaction.addToBackStack(null)

Fragment和Activity之间进行通信

  1. Activity中调用Fragment里的方法,调用SupportFragmentManager中findFragmentById()方法,可以从活动中得到相应Fragment的实例,然后就能调用Fragment里的方法。如:RightFragment rightFragment = (RightFragment) getSupportFragmentManager().findFragmentById(R.id.right.fragment)

  2. Fragment中调用Activity里的方法,每个Fragment都可以调用getActivity()方法来得到和当前Fragment相关联的Activity实例。如:MainActivity activity = (MainActivity) getActivity()

  3. Fragment之间的通信,首先在一个Fragment中得到与他相关联的Activity,然后在通过这个Activity去获取另一个Fragment的实例,这样即实现了Fragment之间的通信功能

Fragment的生命周期

fragment生命周期.png

动态加载布局的技巧

  1. Android中的常见的限定符

Android 常见限定符.jpg

  1. 最小宽度限定符,最小宽度限定符允许我们对屏幕的宽度指定一个最小值(以dp为单位),然后以这个最小值为临界点,屏幕宽度大于这个值的设备就加载这一个布局。如:程序运行在屏幕宽度大于600dp的设备上时,会加载layout-sw600p/activity_main.xml,而程序运行在屏幕宽度小于600dp的设备上时,会加载默认的layout/activity_main.xml

简易版新闻应用——Fragment实践(暂略)

原创粉丝点击