Android笔记- fragment 基本了解

来源:互联网 发布:农村淘宝怎么取消绑定 编辑:程序博客网 时间:2024/06/03 19:24
1、什么是Fragment 
Google 官方文档: Fragment 代表着 在一个 Acitvity 中用户界面的一部分或者动态行为。 你可以在一个Acitvity中 联合复杂的 Fragments 来得到一个多视图布局的UI 。 还可以在多个 Activity 中复用一个 Fragment。一个 Fragment 必须嵌入到 一个 Acitvity 中才能够实现它的价值。它的生命周期影响着Activity 的生命周期。 。。
翻译得略辛苦,就简单总结下我个人的理解吧——
 Fragment , 片段的意思,我认为可以与 SubActibity 相提并论,它是从Android 3.0 后出道的,出道目的: 因为平板的屏幕远比手机大,所以,如果单纯地和手机一张,一屏幕单纯只是显示某一个菜单列表,实在是够傻。必然地,我们要充分利用它的大尺寸,而不必像手机那样,单瓶显示,点击后再跳转。这时候,我们看下面这图,“我的房间”下面就是一个显示列表的 Fragment ,而右边则是显示具体内容的另一个 Fragment 。 
  

至此,我想你能够大概懂了它的意思了吧,它不能独立使用,必须嵌入到窗口中才能显示其中的UI 。 当然,之前说过,它像SubActibity, 有自己的View 控件,有自己的生命周期。它的主要应用在状态保持,逻辑共享和导航、整体移动等。可能你还没有什么具体的概念。没关系,用一次就晓得它的模样了。

2、Fragment 生命周期

看这个长长的图,你就晓得它的生命周期还是很长的。
一开始,Fragment如何 被添加到 Activity 中呢?——只需两步
(1)创建一个java文件,然后让它继承Fragment ,那么它就是一个fragment 了,这里假设命名为LeftFragment。
(2)假设某Acitivity 对应的UI xml 文件是main.xml , 那么在main.xml 中应该添加一个 fragment 布局控件,重点是最后一句,让它映射到我们在(1)新建的Fragment 中去。
     <fragment        android:id="@+id/titles"        android:layout_width="match_parent"        android:layout_height="match_parent"       class="com.lin.fragment.LeftFragment" />


经历上面两步, Fragment就 被添加到 Activity 中去了。

当创建Fragment时,它会经历如下状态:

onAttach() -> onCreate() -> onCreateView() -> onActivityCreated()

当Fragment变为可见时,它会经历如下状态:

onStart() -> onResume()

当Fragment进入后台模式时,它会经历如下状态:

onPause() -> onStop()

当Fragment销毁时(当托管Fragment的活动销毁时),它会经历如下状态:

onPause() -> onStop() -> onDestroyView() ->onDestroy() -> onDetach()


一般情况下,我们使用Fragment 最起码要重写实现一个方法—— onCreateView 方法:
public static class ExampleFragment extends Fragment {    @Override    public View onCreateView(LayoutInflater inflater, ViewGroup container,                             Bundle savedInstanceState) {        // Inflate the layout for this fragment        return inflater.inflate(R.layout.example_fragment, container, false);    }}

它是最重要的一个,因为它负责创建在 Fragment 中显示的View , 其中 inflater 参数用来装载布局文件,container 代表fragment 的父标签对应的ViewGroup 对象,savedInstanceState 则是可以获取当前Fragment 保存的状态,未保存时为null 。 


3、创建 Fragment 

(1) 开发使用的Fragment 必须继承 Fragment 基类 。 

继承Fragment基类的有四种,分别是用于对话框的,列表的,选项设置和webview的。
(2)接下来,使用Fragment 与使用Activity非常类似,同样有onCreate、onStop()等回调方法。
常用的创建Fragment 时候需要重写实现的三个方法如下: 
  • onCreate()
  • onCreateView()  用于Fragment绘制界面组件。
  • onPause() 当用户离开Fragment将回调该方法。
0 0
原创粉丝点击