2016-04-04 9 views
0

私のIOSアプリをアンドロイドに変換しようとしていますが、私は少しアンドロイド版です。私のアプリは、一般にナビゲーションドロワを使ってフラグメント間を移動します。私がフラグメントAに入ってからフラグメントBに行き、その後に戻るボタンを押すと、フラグメントAに戻ります。しかし、バックボタンでフラグメントAに行くと、再び始まり。以前のフラグメントに戻ってクラスを再度ロードせずにフラグメントの前の情報が表示される方法はありますか?誰かがこれについて助けることができれば素晴らしいだろうか?popBackStack on dismissing onCreate

これは、バックボタンが押されたコードです:

@Override 
    public void onBackPressed() { 

     DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 

     if (drawer.isDrawerOpen(GravityCompat.START)) { 

      drawer.closeDrawer(GravityCompat.START); 

     } else { 

      android.support.v4.app.FragmentManager fm = getSupportFragmentManager(); 

      if (fm.getBackStackEntryCount()>0) { 

       fm.popBackStack(); 

      } 
      else { 
       System.out.println("no more back"); 
      } 

     } 
    } 

これは私が断片間を移動する方法である:

usersFragment fragment = new usersFragment(); 
      android.support.v4.app.FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); 
      fragmentTransaction.replace(R.id.fragment_container, fragment); 
      fragmentTransaction.addToBackStack(null); 
      fragmentTransaction.commit(); 

答えて

2

EDIT:

使用

fragmentTransaction.hide(getFragmentManager().findFragmentByTag("yourTag")); 
fragmentTransaction.add(R.id.fragment_container, fragment); 
の代わりに
fragmentTransaction.replace(R.id.fragment_container, fragment); 

そのは、現在のフラグメントを削除し、次のフラグメントを追加置き換えるため。だから戻ってくると、前の断片をもう一度作り直す。

+0

こんにちはnitinkumarpさん、ありがとうございますが、フラグメントが作成されたら、このようにして、必要なら再度どうやってリロードしますか?私はこのボタンを押したときにだけこの動作が必要ですが、別のページからのリンクでフラグメントに来ると、前にロードされていても再度ロードする必要があります。 IOSでは、UiViewsの間に戻るボタンを押すと、自動的に表示されます。 – saner

+0

初期の回答を編集しました。それをチェックしてください:) – nitinkumarp

+0

ありがとうnitinkumarp、それは素晴らしい働きました:)ところで、タグとして使用するよりも、私は "findFragmentById"を使用しました。 – saner

関連する問題