为什么在backstack中零片段

Lee*_*fin 7 android android-emulator android-intent android-layout android-fragments

我的简单布局只有一个片段占位符:

<FrameLayout
   android:id="@+id/fragment_placeholder"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
  />
Run Code Online (Sandbox Code Playgroud)

我首先在这个占位符中添加第一个片段:

fragmentTransaction.add(R.id.fragment_placeholder, firstFragment, "first"); //I did not put to backstack
Run Code Online (Sandbox Code Playgroud)

我有第二个片段,它取代上面的片段并将其放回到堆栈:

FragmentManager fragMgr = getSupportFragmentManager();
FragmentTransaction fragTrans = fragMgr.beginTransaction();

//initialize an fragment instance
Fragment secondFragment = initSecondFragment(); 

//replace with the fragment 
fragTrans.replace(R.id.fragment_placeholder, secondFragment, "second");

//Add transaction to back stack
fragTrans.addToBackStack(null);

//commit the transaction
fragTrans.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
fragTrans.commit();  

//The following log returns me 0 when counting the number of fragments in back stack, why?  
Log.v("nr of fragment in back stack", fragMgr.getBackStackEntryCount()+"");
Run Code Online (Sandbox Code Playgroud)

但我最后在后面的堆栈中有0个片段,为什么???

doo*_*aye 0

我不确定答案......可能需要等待添加片段?尝试通过这个来计数

 new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                Log.v("nr of fragment in back stack", fragMgr.getBackStackEntryCount()+"");  
            }
        },50);
Run Code Online (Sandbox Code Playgroud)