2017-01-03 53 views
0

使用按钮从活动启动片段。这个片段是动态启动的。我试图看看片段堆栈发生了什么。片段事务的堆栈大小

launchBtn.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      Fragment newFragment = new SomeFragment(); 
      // consider using Java coding conventions (upper first char class names!!!) 
      FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); 
      transaction.add(R.id.frame_container, newFragment); 
      transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); 
      transaction.addToBackStack("add_fragment"); 
      transaction.commit(); 
      int entryCount = getFragmentManager().getBackStackEntryCount(); 
      Log.d("New size ", String.valueOf(entryCount)); 
     } 
    }); 

entryCount的值最终为零,我很好奇为什么。

第二个问题是如何从某个片段返回,从某种活动以这种方式启动到最初的活动。

回答

2

commit()方法不立即调用,使用commitNow()如果你想立即完成FragmentTransaction

要隐藏片段,可以使用hide()方法。