簡體   English   中英

如何用片段修復后退導航?

[英]How can I fix the back navigation with fragments?

我在實施后退導航時遇到問題。

活動A1啟動活動A2 A2包含一個全屏片段:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent" >

    <!-- fragment goes here -->

</RelativeLayout>

A2onCreate()我將片段F1加載到上面的容器中:

@Override
protected void onCreate(Bundle arg0) {
    super.onCreate(arg0);
    setContentView(R.layout.activity_main);
    replaceFragment(new AccountHomeFragment());
}

public void replaceFragment(Fragment f){
     FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
     fragmentTransaction.replace(R.id.fragment_container, f);
     fragmentTransaction.addToBackStack(f.getClass().getSimpleName());
     fragmentTransaction.commit();
}

並在某些時候用戶單擊按鈕, F1F2代替。 問題是當用戶單擊后退按鈕時:

  • 第一次點擊:沒有任何反應
  • 第二次點擊:從F2轉到A1 (跳過F1

我期望什么

  • 第一次點擊: F2 > F1
  • 第二次點擊: F1 > A1

我注意到如果在F1替換為F2之前按回車:

  • 第一次點擊: F1 >黑屏
  • 第二次單擊:黑屏-> A1

我認為您的問題也可能是由於將您的第一個片段也添加到了堆棧中引起的。 onCreate ,調用replaceFragment會自動添加它。 只需手動添加片段而無需addToBackStack調用,並對所有后續片段事務使用replaceFragment函數。

暫無
暫無

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

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