不知道你有没有用过 FragmentPagerAdapter,如果没有,这你就不用看了。


Fpa 很奇怪,每次只保留上一个和下一个的 Fragment 的 View, 其他都会销毁,这就导致我很被动。

所以要看下源码,一探究竟,能不能看懂呢?

FragmentPagerAdapter 需要导入 V4 支持库的源码。


@Override    public void destroyItem(ViewGroup container, int position, Object object) {        if (mCurTransaction == null) {            mCurTransaction = mFragmentManager.beginTransaction();        }        if (DEBUG) Log.v(TAG, "Detaching item #" + getItemId(position) + ": f=" + object                + " v=" + ((Fragment)object).getView());        mCurTransaction.detach((Fragment)object);    }


这是原先的 destoryItem 方法,具体调用时机不知,就是简单的 detach Fragment ,

detach Fragment 好像会造成 destroy fragment view.

所以只要将 destroyItem 重载为空就行了。


这会不会造成内存泄露? 

只是不 detach 而已,最后所有的 Fragment 都会释放的,貌似没问题。


调用 destroyItem 的时机是 ViewPager 决定的,但2000多行代码,没必要死磕。




更多相关文章

  1. 如何在代码里打开Android手机通知状态栏
  2. Android之jni深入
  3. Android(安卓)源码 图形系统之请求布局
  4. Android(安卓)DownloadProvider分析
  5. 111111111
  6. android加固签名工具(源码下载)
  7. Android(安卓)FrameWork——Binder机制详解
  8. Android(安卓)Camera2 Hal3(一)初始化
  9. Android(安卓)Monkey测试及源码分析

随机推荐

  1. android Sql Login
  2. 「Android 进阶」Android 事件分发机制
  3. UI___tab view 的实现
  4. android与javascript交互(Binding JavaScr
  5. Android 应用程序请求Vsync
  6. Andriod 实现可拖动列表
  7. Android手机重启的核心代码
  8. 怎么访问android 网站
  9. Android studio 导入项目出现:Failed to c
  10. 设置Textview最大长度,超出显示省略号