Fragment使用

作者: 雯艺雪 | 来源:发表于2019-04-12 17:19 被阅读0次

一、使用方法

1、继承自Fragment,实现onCreateView以显示

2、布局文件中显示

在Activity的xml文件中布局Fragment(必须声明ID,否则崩溃,不提倡使用)

注意:此时如果Fragment是继承自android.support.v4.app.Fragment,则Activity必须是继承自android.support.v4.app.FragmentActivity。

Fragment在Android 3.0(API level 11)后推出,为了在以前的低版本中使用,引入了android.support.v4.app.Fragment 和android.support.v4.app.FragmentActivity。

3、代码中动态显示

getFragmentManager().beginTransaction().replace(R.id.fl_a_1,fragment1).commit();

4、FragmentTransaction的几种操作

(1)add(int viewId,Fragment fragment):将Fragment添加到指定布局文件中指定ID的view中

(2)hide(Fragment fragment):隐藏Fragment(实际上Fragment仍然存在、存活)

(3)show(Fragment fragment):显示Fragment,与hide对应

(4)remove(Fragment fragment):将Fragment移除,如果没有将Fragment添加到回退栈中,Fragment将被销毁。

(5)replace(int viewId,Fragment fragment):替换指定id的控件为指定的Fragment

(6)detach(Fragment fragment):将指定fragment从UI中移除,Fragment存活,不执行onDestroy和onDetach方法。

(7)attach(Fragment fragment):重建view视图,附加到UI上并显示。如果是调用完detach方法再来此方法不会调用onAttach和onCreate方法

在执行完以上操作后再调用commit方法提交事务才能生效

二、生命周期

1、onAttach

当Fragment与Activity发生关联的时候调用,传入一个Context上下文参数。

2、onCreate

当创建Fragment时与onAttach一起被调用。

3、onCreateView

每次创建、绘制Fragment的View时调用并返回一个View对象

4、onActivityCreate

当Fragment所在的Activity被onCreate完成时调用

5、onDestroyView

当Fragment的视图被移出时调用

6、onDestroy

当Fragment被销毁时调用;

7、onDetach

与onAttach相对应,当Fragment与Activity关联被取消时调用。但是,调用detach方法是并不会调用它。

三、FragmentPagerAdapter与FragmentStatePagerAdapter

当使用Fragment与ViewPager搭配时,必须适应FragmentActivity和android.support.v4.app.Fragment。

Viewpager至少会预加载左右两侧相邻的1个页面

1、区别:

使用FragmentPagerAdapter时,会缓存每个Fragment,FragmentStatePagerAdapter则不会。当离开当前Fragment界面时,FragmentStatePagerAdapter会销毁(FragmentPagerAdapter则会销毁Fragment的view)上上个(或上个,如果有)界面的Fragment:

FragmentPagerAdapter :onPause、onStop、onDestroyView   (不完全销毁

FragmentStatePagerAdapter :onPause、onStop、onDestroyView、

onDestroy、onDetach          (完全销毁


对于FragmentStatePagerAdapter ,每次销毁时都会自动调用onSaveInstanceState(Bundle outState)方法通过bundle将信息保存下来,之后可在onCreate方法中进行回访创建。

相关文章

网友评论

    本文标题:Fragment使用

    本文链接:https://www.haomeiwen.com/subject/bykcwqtx.html