2017-05-02 1 views
0

私は完全にフラグメントと単一のアクティビティで構成されるアプリケーションを構築しています。すべてのフラグメントを一度初期化し、それが置き換えられるたびにresume/pausedを得るこのユースケースを持っています。私は断片の単一のインスタンスが仕事をするだろうと思ったが、期待通りに起こっていない。Android - 単一のフラグメントが一時停止して再開しますが、破損しない

これを達成する方法を知りたいので、フラグメントのインスタンスが1つだけ毎回resume/pauseになるようにしてください。

+0

'onResume/onPause'のようなビューを作成するためにはない一時停止/保持動作が再開されたときにのみ呼ばれます断片が変化しているとき –

答えて

1

このメソッドを使用しFragment

void switchFragment(@NonNull Fragment fragment, boolean addToBackStack) { 
     final String NAME = fragment.getClass().getName(); 
     final FragmentManager fm = getSupportFragmentManager(); 

     final boolean fragmentPopped = fm.popBackStackImmediate(NAME, 0); 

     if (fragmentPopped || fm.findFragmentByTag(NAME) != null) { 
      return; 
     } 

     if (addToBackStack) { 
      fm.beginTransaction() 
        .replace(mContainerResId, fragment, NAME) 
        .commit(); 
     } else { 
      fm.beginTransaction() 
        .replace(mContainerResId, fragment, NAME) 
        .addToBackStack(NAME) 
        .commit(); 
     } 
    } 

を切り替えてFragmentクラスで断片的に

private View rootView; 

@Nullable 
@Override 
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
    if (rootView == null) { 
     rootView = inflater.inflate(R.layout.your_layout, container, false); 
    } 
    return rootView; 
} 

以下
+0

これは本当に私のために働いた、ありがとう仲間:) –

関連する問題