2016-11-16 17 views
2

目前,我有这样的片段堆栈。在android中更改后台碎片的位置?

F1 - > F2 - > F3 - > F4 - > F5

并且在一个活动,我有一个按钮B1

我的问题是,当我按B1按钮从活动如何更新像下面的片段堆栈。

F2→F3→F4→F5→F1。

我在addtobackstack时使用的字符串变量。

回答

1

您可以通过在代码中使用Stack来解决此问题。在片段事务中,您必须使用add来代替片段。在按钮B1上,您必须弹出堆栈中的碎片F1,然后再将其推入堆栈。我认为这可能适合你。

+0

我会在我的代码中试试这个。这听起来像会起作用。 –

1

我解决了这个这个代码:

public void fragmentInflater(Fragment newFragment) { 
    FragmentTransaction transaction; 
    FragmentManager fragmentManager = getSupportFragmentManager(); 
    transaction = fragmentManager.beginTransaction(); 
    Fragment oldFragment = fragmentManager.findFragmentByTag(newFragment.getClass().getName()); 
    if (oldFragment == null) { 
     transaction.replace(R.id.container, newFragment, newFragment.getClass().getName()); 
     transaction.addToBackStack(null); 
    } else { 
     transaction.replace(R.id.container, oldFragment, newFragment.getClass().getName()); 
    } 
    transaction.commit(); 
} 

使用此方法添加片段,您的容器,你会实现你想要的。它也会阻止将重复的片段添加到您的容器中。