14 android android-fragments fragmentmanager
我有Activity类似下面的代码:
public class AuthenticatedMainActivity extends Activity implements FragmentManager.OnBackStackChangedListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
.............
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction().add(R.id.frame_container,fragment, "First").addToBackStack(null).commit();
}
private void switchFragment(Fragment fragment){
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.frame_container, fragment).addToBackStack("Tag").commit();
}
@Override
public void onBackStackChanged() {
System.out.println("====================================================changeeeeeeeeeeeeeeeeeeeeeeeeee");
}
}
Run Code Online (Sandbox Code Playgroud)
但是,onBackStackChanged()在使用该switchFragment方法成功替换片段后,该方法永远不会被调用.
JRo*_*ero 30
您需要添加您Activity的OnBackStackChangedListener使用addOnBackStackChangedListener.
例:
@Override
protected void onCreate(Bundle savedInstanceState) {
.............
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.addOnBackStackChangedListener(this);
fragmentManager.beginTransaction().add(R.id.frame_container,fragment, "First").addToBackStack(null).commit();
}
Run Code Online (Sandbox Code Playgroud)