首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FragmentTransaction ``commit()‘实现

FragmentTransaction ``commit()‘实现
EN

Stack Overflow用户
提问于 2015-05-12 12:01:25
回答 1查看 466关注 0票数 2

我已经梳理了GrepCode和下载的源代码,但是我找不到一个FragmentTransaction类implementation.Can --有人向我指出一个源代码吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-12 12:10:42

这里是可能的实现之一。

类的签名如下所示:

代码语言:javascript
复制
final class BackStackRecord extends FragmentTransaction implements FragmentManager.BackStackEntry, Runnable {...}

在grep代码中,您可以单击指向类名旁边的小箭头,以找到派生类。

为了使这个答案完整:

代码语言:javascript
复制
 int commitInternal(boolean allowStateLoss) {
     if (mCommitted) {
         throw new IllegalStateException("commit already called");
     }
     if (FragmentManagerImpl.DEBUG) {
         Log.v(TAG, "Commit: " + this);
         LogWriter logw = new LogWriter(Log.VERBOSE, TAG);
         PrintWriter pw = new FastPrintWriter(logw, false, 1024);
         dump("  ", null, pw, null);
         pw.flush();
     }
     mCommitted = true;
     if (mAddToBackStack) {
         mIndex = mManager.allocBackStackIndex(this);
     } else {
         mIndex = -1;
     }
     mManager.enqueueAction(this, allowStateLoss);
     return mIndex;
 }

commitInternal是由commit调用的

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30190282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档