2017-05-15 3 views
0

アクティビティが最初に作成されたときに、フラグメントを使用するアクティビティがあります。バックスタックに追加されない最初のフラグメントが表示されます。なぜなら、ユーザが押したときに空のアクティビティを望んでいないからです。バック。Androidバックボタンとフラグメントアクティビティ

それ以降にロードされたフラグメントはバックスタックに追加されます。

私は、フラグメントを開き、前のフラグメントに戻るために戻ることができますが、最初のフラグメントに到達するまで押し上げることができます。なぜなら、この時点で戻るとアクティビティが閉じられ、私は望んでいない。

私は、最初のフラグメントが表示されている場合にのみ、戻るボタンが押されないようにする良い方法を知りたいと思います。このように解決

答えて

4

は.addToBackStack(ヌル)を追加します。

FragmentTransaction mFragmentTransaction = getFragmentManager() 
        .beginTransaction(); 
     .... 
     mFragmentTransaction.addToBackStack(null); 

-Add onBackPressed()アクティビティに

@Override 
public void onBackPressed() { 
    if (getFragmentManager().getBackStackEntryCount() == 0) { 
     this.finish(); 
    } 
else { 
     getFragmentManager().popBackStack(); 
    } 
} 
2

:あなたはアクティビティから新しいフラグメントを呼び出したときに

@Override 
public void onBackPressed() { 
    if (getFragmentManager().getBackStackEntryCount()> 0) { 
     super.onBackPressed(); 
    } 
} 
2

アクティビティクラスのonBackPressedメソッド内のコードの下に追加します。

@Override 
public void onBackPressed() { 
int backstack = getSupportFragmentManager().getBackStackEntryCount(); 

if (backstack > 0) { 
    getSupportFragmentManager().popBackStack(); 
} 
    else{ 
     super.onBackPressed(); 
     //System.exit(0); 
    } 
} 

このヘルプを参考にしてください。

関連する問題