OnPause()之后的片段OnResume()



我有一个应用程序,其中一部分是相机拍摄照片的片段,当拍摄照片时,加载另一个片段来显示图像。如果用户不满意,则可以选择重拍照片。这应该回到上一个片段(相机),并且它在显示覆盖时进行,但是之前拍摄的图像仍然显示。

编辑**我对它进行了调试,当拍摄图像并加载下一个片段时,不会调用onpause(),因此,当用户单击"重新拍摄"时,也不会调用onresume,它会重新实例化我的相机。我知道这里也有类似的问题,但我似乎找不到问题的答案。**编辑

应该说,我正在与其他在这里工作的人融合,这引起了混乱。以下是转到下一个片段和转到上一个片段的两种方法

下一步

public void gotoNextFragment(String nextTag, Fragment nextFragment){
    FragmentManager  fm = getSupportFragmentManager();
    FragmentTransaction ft = fm.beginTransaction();
    ft.setCustomAnimations(R.animator.enter_slide_in, R.animator.enter_slide_out);
    boolean newlyCreated = false;
    if(nextFragment == null){
        nextFragment = Fragment.instantiate(this, nextTag);
        newlyCreated = true;
    }
    //hide current fragment
    ft.hide(fm.findFragmentByTag(Misc.currentContentFragmentTag));
    if(newlyCreated){
        ft.add(R.id.content_frame, nextFragment, nextTag);
    }
    else{
        ft.show(nextFragment);
    }
    ft.addToBackStack(null);
    ft.commit();
    Misc.currentContentFragmentTag = nextTag;
}

以前

public void gobackToPreviousFragment(String preFragmentTag,Fragment f){
    FragmentManager  fm = getSupportFragmentManager();
    FragmentTransaction ft = fm.beginTransaction();
    ft.setCustomAnimations(R.animator.close_slide_in,R.animator.close_slide_out);
    ft.show(f);
    ft.remove(fm.findFragmentByTag(Misc.currentContentFragmentTag));                    
    ft.addToBackStack(null);
    ft.commit();
    Misc.currentContentFragmentTag = preFragmentTag;
}

如果有人对我需要做什么来确保onResume()被调用有任何见解,我将不胜感激…

编辑仍然显示的图像预览是标准相机图像预览的图像预览,而不是来自用于预览的片段

hide() show()片段时,不会调用onResume()。然后,您只会在第一次创建片段时得到一个调用。

onResume()-方法总是在片段运行之前调用。检查生命周期图-->http://docs.xamarin.com/static/guides/android/platform_features/fragments/part_1_-_creating_a_fragment/Images/fragment_lifecycle.png

相关内容

  • 没有找到相关文章

最新更新