有人可以解释以下代码的含义吗?
FragmentManager.BackStackEntry backEntry = fragmentManager.getBackStackEntryAt(fragmentManager)是什么 .getBackStackEntryCount() - 1); 是什么意思?
是什么?
fragmentTransaction
.setCustomAnimations(R.anim.right_in, R.anim.right_out, R.anim.left_in, R.anim.left_out)
.replace(R.id.mainMainFragmentLayout, newFragment)
.addToBackStack(newFragment.getClass().getName()).commit() ;
是什么意思?
public static void addFragment(Fragment originalFragment, Fragment newFragment) {
FragmentManager fragmentManager = originalFragment.getActivity().getFragmentManager() ;
if (fragmentManager.getBackStackEntryCount() > 0) {
FragmentManager.BackStackEntry backEntry = fragmentManager.getBackStackEntryAt(fragmentManager
.getBackStackEntryCount() - 1) ;
if (backEntry != null && backEntry.getName().equals(newFragment.getClass().getName()))
return ;
}
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction() ;
fragmentTransaction
.setCustomAnimations(R.anim.right_in, R.anim.right_out, R.anim.left_in, R.anim.left_out)
.replace(R.id.mainMainFragmentLayout, newFragment)
.addToBackStack(newFragment.getClass().getName()).commit() ;
fragmentManager.executePendingTransactions() ;
}
我有谷歌片段,但我仍然无法理解......
提前致谢。
答案 0 :(得分:0)
它将返回添加到堆栈中的片段总数。
您可以使用API级别14中引入的getName()
FragmentManager.BackStackEntry
方法,它将返回一个字符串,您可以在片段事务期间将其检查为addTobackStack(str)
方法中存储的字符串。
FragmentManager.BackStackEntry backEntry = fragmentManager.getBackStackEntryAt(fragmentManager
.getBackStackEntryCount() - 1) ;
Fragment fragment=getFragmentManager().findFragmentByTag(backEntry.getName());
但是要获取Fragment名称,首先需要使用特定名称将片段添加到堆栈中。
fragmentTrans.addToBackStack("MyFragment");