Fragment

2019-06-04  本文已影响0人  _爱笑的eyes

1.Fragment任务栈

答:

2.与activity的通信

答:

①Activit传递数据给Fragment:

在Activity中创建Bundle数据包,调用Fragment实例的setArguments(bundle) 从而将Bundle数据包传给Fragment,然后Fragment中调用getArguments获得 Bundle对象,然后进行解析就可以了

②Fragment传递数据给Activity

在Fragment中定义一个内部回调接口,再让包含该Fragment的Activity实现该回调接口, Fragment就可以通过回调接口传数据了

3.Fragment复用

答:1.将viewpager + tablayout + fragment复用

①初始化数据 tablayout和 fragment的数据

②添加tab栏的选项

③创建适配器,并且重写里面的构造

这个也必须重写 不然tab栏不出来

//ViewPager与TabLayout绑定后,这里获取到PageTitle就是Tab的Text

@Override

public CharSequence getPageTitle(int position) {

    return listTitles.get(position);

}

④将Tab栏与 viewpager绑定起来  mTab.setupWithViewPager(mVP);

⑤给Tabs设置适配器 setTabsFromPagerAdapter

复用的好处:

避免显示错乱

避免重复添加

避免多余的内存占用

优化界面启动速度

4.两种适配器的区别

答:两种适配器,FragmentPagerAdapter和FragmentStateAdapter。前者类内的每一个生成的 Fragment 都将保存在内存之中,因此适用于那些相对静态的页,数量也比较少的场景。如果需要处理有很多页,并且数据动态性较大、占用内存较多的情况,这时候,就需要用到后者。后者会把已经创建的Fragment进行保存。

上一篇下一篇

猜你喜欢

热点阅读