Tôi có một Activity
như mã bên dưới:Android onBackStackChanged() không được gọi
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");
}
}
Nhưng phương pháp onBackStackChanged()
không bao giờ được gọi là thậm chí Sau khi thay thế thành công mảnh với phương pháp switchFragment
.
Hóa ra bạn phải dứt khoát gọi: .addToBackStack (null) khác onBackStackChanged không được gọi một cách chính xác ngay cả khi đã đăng ký! –
@ BenMartenThat vì các giao dịch phân đoạn không được thêm vào backstack theo mặc định. –