2013-08-08 5 views
0

У меня есть приложение, часть которого представляет собой фрагмент, в котором камера берет pic, когда снимок сделан, другой фрагмент загружается для отображения изображения. Затем у пользователя есть выбор, чтобы вернуть изображение, если оно не доволен. Это должно вернуться к предыдущему фрагменту (фотокамере), и он будет отображаться на экране, однако ранее сделанное изображение все еще отображается.Фрагмент OnResume() после OnPause()

EDIT * * я отлажена через него и, когда изображение берется и следующий фрагмент загружен, OnPause() не вызывается, поэтому, когда пользователь щелкает пересдать, то onresume разве называется, который reinstantiates мой камера. Я знаю, что здесь были похожие вопросы, но я не могу найти ответ на свою проблему. * * EDIT

Следует сказать, что я интегрируюсь с кем-то, работающим здесь, и это вызывает путаницу. Вот два способа идти к следующему фрагменту и собирается к предыдущему фрагменту

ДАЛЕЕ

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() называется Я был бы признателен ...

EDIT предварительного просмотра изображения, которое отображается по-прежнему является то, что стандартный предварительный просмотр изображения с камеры, а не из фрагмента для просмотра

ответ

5

Когда вы hide()show() фрагменты вы не получите вызов onResume(). Затем вы получаете вызов только при создании фрагмента.

+0

нормально, поэтому, если я скроюсь, Я тоже не получаю onPause? Есть ли способ обойти это? или вам нужно заменить фрагмент для onPause() и в свою очередь onResume() для вызова? –

+0

@ DJ-DOO ты знаешь, где ты прячешься и показываешь так просто крючок там ... – Warpzit

+0

почему я не подумал об этом ... слишком долго смотрел на него! так что скрыть просто позвонить onPause и то же самое для шоу .. (onResume)? –

1

в onResume() - метод всегда вызывается перед фрагментом работает. проверить жизненный цикл-диаграмма ->http://docs.xamarin.com/static/guides/android/platform_features/fragments/part_1_-_creating_a_fragment/Images/fragment_lifecycle.png

+0

Я понимаю, что я отлаживал свой код, и я изучил его. Однако, если onResume() также не вызывается, когда фрагмент или активность активируются после вызова onPause? –

+0

да, он должен. попробуйте переопределить метод onResume() и добавить в него некоторый Log.i или Toast, чтобы проверить, действительно ли он вызван, когда это будет. По крайней мере, вы получите новую полезную информацию о своей проблеме! – bofredo

+0

Это не так, я знаю это, потому что у меня были точки останова в onresume, теперь я добавил тост, чтобы быть уверенным, и я точно знаю, что это не так, но я до сих пор не знаю, почему –

Смежные вопросы