0

我有一个带有 3 个标签的应用程序。对于其中两个选项卡,我有按钮,可以在其中使用以下代码将当前片段更改为新片段:

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();

对于一个正常片段的选项卡,更改为地图片段后退按钮将我带回原始片段,没有任何问题。

但是,另一个作为 mapfragment 的选项卡,在按下后退按钮时不会给我相同的操作。当它被按下时,它会将视图更改为白色/黑色视图。

这是选项卡中的事务代码,其中后退按钮不起作用:

                        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();

有谁知道为什么会这样?有什么帮助吗?

4

1 回答 1

0

如果您可以手动执行此操作,则可以尝试覆盖 onBackPressed() 并手动执行您想做的任何事情。

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

    }
于 2013-04-25T13:01:50.653 回答