1. FragmentPagerAdapter 和FragmentStatePagerAdapter 的区别:
FragmentStatePagerAdapter在每次切换viewpager的时候是有进行内存回收的,更适用于多页面的情况,因为页面比较多的时候,会比较耗内存。而FragmentPagerAdapter他在destroyItem的时候并没有回收内存,只是对UI进行了分离。所以他适用月页面比较少的情形,才不会对系统内存有大的影响。
2.Fragment的生命周期:
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.
网友评论