android开发官方教程之Building a Dynamic UI with Fragments

1**Fragments 是小碎片的意思。**
1.创建一个Fragments.
2.Fragments对不同屏幕大小设备的调整
3.Fragments的交互

2**Fragments 像什么?**
Fragments 有点像sub-activity,能在不同的Activity里面重复使用,拥有自己生命周期。能添加,删除。这课程告诉你怎么扩展Fragment。

Fragments涉及support Library .support Library是什么意思?
Android support Library 是代码库的集合,并向下兼容android向下的版本。每一个库包含了一个特点功能集。同时可以使用新的功能,并向下兼容旧版本。

3.创建一个Fragment 类
1.创建一个类 extends Fragment。
2.重写Fragment里面的方法。给Fragment布局的函数是onCreatView().
note:调用Activity里面的pause()方法,所有的fragment里面的pause方法会调用。

4.Fragment的生命周期
1.开始创造Fragment 调用
onAttach,onCreate,…,onResume.
2.从Fragment到桌面 or屏幕上锁,Fragment没有毁灭。
再从桌面 or屏幕解锁,不要创建Frament,直接onStart,
onResume。
3.从Fragment切换到新的Fragment,Fragment消失。
onPause,onDestoryView,再回本Fragment,要creatView,创建Fragment。
4.退出应用,

5.Add a Fragment to an Activity using XML
Fragment可以重用,每一个Fragment实例与FragmentActivity关联,并在XML上实现这种关联。
再MainActivity继承FragmentActivity or ActionBarActivity(v7 appcompat library)

6.Building a Flexible UI
在 handset 手机里面,屏幕小只能放一个Fragment.而tablet可以放
并side-by-side放两个。
FragmentManager提供许多方法管理Fragment.比如添加,删除,修改。

7.Add a Fragment to an Activity at Runtime
1.FragmentManager创建一个对象FragmentTransaction来管理Fragment,
2.动态Fragment,必须在activity里面的onCreate创建,必须有一个View,
3.FrameLayout扮演者Fragment容器,为了Fragment之间的转换,必须添加改容器。
4.最后要提交事务transaction.
5.添加Fragment方法有getSupportFragmentManager().beginTransaction()
.add(R.id.fragment_container, firstFragment).commit();

8.Replace One Fragment with Another
执行Replace操作,跟从create一样,只是把add,改成Replace。
当导航backward,undo,你必须在提交前执行FragmentTransaction的addToBackStack()方法。放在栈中,不会摧毁Fragment,否则摧毁。
addToBackStack让用户能向后导航fragment事务。

9.Fragment之间的交互
Fragment之间的交互是在关联的Activity之间交互。两个Fragment不能之间交互。
每个Fragment都有一个只包含,模块组件,定义它的布局,和行为。
定义好的Fragment让他与activity关联,使它与application逻辑关联起来,实现全局的复合的UI.

10.定义接口
在Fragment定义一个接口。
并在Activity中实现这个接口。在onAttach()方法中捕捉接口的实现。然后调用接口来实现。 onArticleSelected()。
为了接受Fragment里面onArticleSelected里面的消息,下面的Activity实现上面的接口。

宿主Fragment同findFragmentById()方法来获取fragment的实例。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。