簡體   English   中英

改變android中backstack片段的位置?

[英]Change the position of backstack fragment in android?

目前,我有一個像這樣的Fragment堆棧。

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

在一項活動中,我有一個按鈕B1

我的問題是,當我從活動中按下B1按鈕時,如何更新片段堆棧,如下所示。

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

我在addtobackstack時使用了字符串標簽。

我用這段代碼解決了這個問題:

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

使用此方法將碎片添加到容器中,您將實現您想要的效果。 它還可以防止將重復的片段添加到容器中。

您可以在代碼中使用Stack來解決此問題。 在片段事務中,您必須使用add而不是替換片段。 在按鈕B1上按下你必須從堆棧彈出片段F1,然后你必須再將它推到堆棧。 我認為它可能適合你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM