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を終了します。
これを修正するにはどうすればよいですか?