2013-04-25 3 views
0

У меня есть приложение с 3 вкладками. Для двух из theese вкладок У меня есть кнопки, где я изменить текущий фрагмент с новым с этим кодом:Проблема с обратной кнопкой между фрагментами (backstack)

MapFragment newFragment = new JourneyMapFragment(mContext, getFromDestinationCoordinate(), getToDestinationCoordinate()); 
       android.app.FragmentTransaction transaction = getFragmentManager().beginTransaction(); 
       transaction.setCustomAnimations(android.R.animator.fade_in, 
         android.R.animator.fade_out); 

       // Replace whatever is in the fragment_container view with this fragment, 
       // and add the transaction to the back stack 
       transaction.replace(R.id.fragment_container, newFragment); 
       transaction.addToBackStack(null); 

       if(newFragment.isHidden()){ 
        transaction.show(newFragment); 
       } 

       transaction.commit(); 

Для на вкладках который является нормальным фрагмент, изменение в карту фрагмента кнопку обратно берет меня обратно к исходному фрагменту без использования.

Однако другая вкладка, которая является фрагментом карты, превращается в обычный фрагмент, не дает мне то же самое действие при нажатии кнопки «Назад». Когда он нажимается, он меняет вид на белый/черный вид.

Это код транзакции на вкладке, где кнопка назад не будет работать:

     Fragment newFragment = new CloseBusStopFragment(mContext, busStopList, getMyPosition()); 
         android.app.FragmentTransaction transaction = getFragmentManager().beginTransaction(); 
         transaction.setCustomAnimations(android.R.animator.fade_in, 
           android.R.animator.fade_out); 

         // Replace whatever is in the fragment_container view with this fragment, 
         // and add the transaction to the back stack 
         transaction.replace(R.id.fragment_container, newFragment); 


transaction.addToBackStack(null); 

        if(newFragment.isHidden()){ 
         transaction.show(newFragment); 
        } 
         // Commit the transaction 
         transaction.commit(); 

Кто-нибудь знает, почему это происходит? Любая помощь?

+0

Я не уверен, если я пойму. Но я думаю, что вы добавляете свою первую транзакцию фрагмента в backstack. – nicous

+0

отправил код транзакции для фрагмента, в котором кнопка «Назад» тоже не работает. Я не знаю. Посмотрите точно так же для меня ... – Maggie

ответ

0

Если вы можете сделать это вручную, вы можете попробовать переопределить onBackPressed() и делать все, что хотите, вручную.

@Override 
    public void onBackPressed() { 
        // Do whatever your transaction manually 
     super.onBackPressed(); 

    } 
+0

Я добавил, что вам не повезло. Я просто попытался удалить карту в фрагменте, я хочу «вернуться к», а затем кнопка «Назад» работает отлично. Так что там должна быть проблема – Maggie

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