(原创)Fragment详解(上)

来源:互联网 发布:会计报表软件 编辑:程序博客网 时间:2024/06/08 18:17

Android引入了Fragment机制后,页面设计变得更加灵活了,同时也让开发变得更加快捷方便。那么现在就来了解下什么是Fragment

Fragment,英译为碎片的意思,顾名思义,他是一个可以放置在Activity上的控件,同时他也可以在自己上面放置控件。我们可以简单地把他理解成一个轻量级的Activity。这样一来我们就大概明白了fragment的作用了。

那么怎么使用呢?

首先,你需要自定义一个类去继承Fragment,就好像你去定义一个Activity一样。

这里要注意,Fragment类分为V4包下的和App包下的。V4包是兼容以前版本的,建议使用。而我们Activity可以直接去继承AppCompatActivity,因为AppCompatActivity是兼容FragmentManager的,这个后面再讲。

当我们自定义的Fragment实现类去继承了Fragment父类的时候,可以重写以下三个方法

onCreateView:创建布局文件的

@Nullable@Overridepublic View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {    View view = inflater.inflate(R.layout.footer_refresh, container, false);    return view;}

onViewCreate:紧跟onCreateView后面执行

/** * 该方法紧跟onCreateView之后执行 * @param view * @param savedInstanceState */@Overridepublic void onViewCreated(View view, @Nullable Bundle savedInstanceState) {}

onActivityCreate:Fragment所在的Activity创建后调用这个方法

@Overridepublic void onActivityCreated(@Nullable Bundle savedInstanceState) {    super.onActivityCreated(savedInstanceState);}

另外还可以通过getActivity()方法得到fragment所在的Activity

对于Fragment,我们最后做这样的总结:他是放置在Activity上的一层控件,但同时他又可以基于自身所在Activity去实现自己的布局,Android中的其他控件都可以放在Fragment的布局里。如果说Activity是国家的话,Fragment就是一座城市。当然,Fragment自身也可以包含Fragment。实现Fragment的多重嵌套。

下面介绍Fragment的静态实现:

Fragment类创建好之后,你需要在Activity中去添加一个fragment控件标签

设置好name属性,这个name就是你自己定义的fragment的名称

类似下面这样。这时候Activity就会显示你添加的Fragment来了

<fragment    android:id="@+id/myfragment"    android:name="fragment.Indexfragment"    android:layout_width="match_parent"    android:layout_height="match_parent" />

不过这种方式使用的比较少,使用最多的还是动态加载Fragment

这就需要用到Fragment相关的另一个类FragmentManager了

我们下篇再讲。