总结部分细节

1. FragmentPagerAdapter 和FragmentStatePagerAdapter  的区别:

FragmentStatePagerAdapter在每次切换viewpager的时候是有进行内存回收的,更适用于多页面的情况,因为页面比较多的时候,会比较耗内存。而FragmentPagerAdapter他在destroyItem的时候并没有回收内存,只是对UI进行了分离。所以他适用月页面比较少的情形,才不会对系统内存有大的影响。

2.Fragment的生命周期:

总结部分细节_第1张图片

3.Fragment的通信:

第一种是Fragment中调用Activity的方法,只需要通过getActivity方法获取到原Activity,即可

第二种是Activity中调用Fragment的方法。接口回调。需要在Fragment中定义接口,然后Activity实现,即可

第三种是Fragment调用Fragment的方法,首先获取Activity,然后通过findFragmentById获取Fragment,即可

4.关于view的invalidate和requestLayout方法的区别(参考):

View绘制分三个步骤,顺序是:onMeasure,onLayout,onDraw。调用invalidate方法只会执行onDraw方法;调用requestLayout方法只会执行onMeasure方法和onLayout方法,并不会执行onDraw方法。

所以当我们进行View更新时,若仅View的显示内容发生改变且新显示内容不影响View的大小、位置,则只需调用invalidate方法;若View宽高、位置发生改变且显示内容不变,只需调用requestLayout方法;若两者均发生改变,则需调用两者,按照View的绘制流程,推荐先调用requestLayout方法再调用invalidate方法。

5.

总结部分细节_第2张图片

你可能感兴趣的:(总结部分细节)