2017-05-18 16 views
2

私が使用していた断片を移行する前に:前の断片一瞬目に見える活動で

CameraActivity:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    setTheme(R.style.CameraFullScreenTheme); 
    super.onCreate(savedInstanceState); 

    if (getSupportActionBar() != null) { 
     getSupportActionBar().hide(); 
    } 
    setContentView(R.layout.activity_camera); 

    if (savedInstanceState == null) { 
     Log.d(TAG, "Starting Camera Fragment"); 
     getSupportFragmentManager() 
       .beginTransaction() 
       .replace(R.id.fragment_container, CameraFragment.newInstance(), CameraFragment.TAG) 
       .commitAllowingStateLoss(); 
     mCurrentPageCount = 0; 
    } 
} 

CameraFragment:

public void onPictureTaken(byte[] data, Camera camera) { 
    int rotation = getPhotoRotation(); 
    // Note: Do not send large bitmap images in Bundles and it will lead to Failed Binder Transaction 
    // Use CachePot to pass large data 
    CachePot.getInstance().push(data); 

    getFragmentManager() 
      .beginTransaction() 
      .replace(
        R.id.fragment_container, 
        EditSavePhotoFragment.newInstance(rotation, mImageParameters.createCopy()), 
        EditSavePhotoFragment.TAG) 
      .addToBackStack(null) 
      .commit(); 

    setSafeToTakePhoto(true); 
} 

EditSavePhotoFragment:

Uri photoUri = ImageUtility.savePicture(getActivity(), bitmap); 

    ((CameraActivity) getActivity()).returnPhotoUri(photoUri); 

return PhotoUriは、startActivityForResultを使用して別のアクティビティを呼び出します。新しいアクティビティが開始される前に、移行前にCameraFragmentが一時的に表示されます。

public void returnPhotoUri(Uri uri) { 
    ... 
    startActivityForResult(intent, REQUEST_CODE); 

    // we will start a fresh capture. 
    getSupportFragmentManager().popBackStack(null, getSupportFragmentManager().POP_BACK_STACK_INCLUSIVE); 

    return; 
    } 

最後に、onActivityResultメソッドで、私はCameraActivityを終了します。

これを修正するにはどうすればよいですか?

答えて

1

私はただ問題はreturnPhotoUriであったことを考え出し:

public void returnPhotoUri(Uri uri) { 
    ... 
    startActivityForResult(intent, REQUEST_CODE); 

    // we will start a fresh capture. 
    -- Fix is to use EditSavePhotoFragment.TAG instead of null 
    getSupportFragmentManager().popBackStack(EditSavePhotoFragment.TAG, getSupportFragmentManager().POP_BACK_STACK_INCLUSIVE); 

    return; 
    } 
関連する問題