android-code中的片段是什么意思?

时间:2013-12-24 09:21:49

标签: android android-fragments

有人可以解释以下代码的含义吗?

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() ;
}

我有谷歌片段,但我仍然无法理解......

提前致谢。

1 个答案:

答案 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");