Hi!

I have an activity with a fragment that I hide in a transaction with a custom animation.
This transaction is added to the back stack.
If I don't rotate the screen this is working as expected (pressing 'back' un-hides the fragment with the animation)

1/ If I rotate the screen, the fragment is no longer hidden. I discovered that if I call setRetainInstance(true) on the fragment however, this problem disappears. But is this expected and/or documented somewhere?

2/ But even if I do that, pressing 'back' shout un-hide the fragment, with the custom animation. However:
 - Not using the support package, on a 3.2 Xoom, the fragment stays hidden.
- Using the support package, the fragment does become visible again, but with no animation.
Is this a (known) bug or did I miss something?

Thanks a lot for your help!

Here is the simple example demonstrating this (replace FragmentActivity by Activity and comment/uncomment to switch from using the support package or not):

public class MainActivity extends FragmentActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        if (savedInstanceState == null) {
            final TestFragment testFragment = new TestFragment();
            testFragment.setRetainInstance(true);

final FragmentTransaction ftAdd = getSupportFragmentManager().beginTransaction(); // final FragmentTransaction ftAdd = getFragmentManager().beginTransaction();
            ftAdd.add(R.id.container, testFragment);
            ftAdd.addToBackStack(null);
            ftAdd.commit();

final FragmentTransaction ftHide = getSupportFragmentManager().beginTransaction(); // final FragmentTransaction ftHide = getFragmentManager().beginTransaction(); // ftHide.setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out, android.R.animator.fade_in, android.R.animator.fade_out); ftHide.setCustomAnimations(android.R.anim.fade_in, android.R.anim.fade_out, android.R.anim.fade_in, android.R.anim.fade_out);
            ftHide.hide(testFragment);
            ftHide.addToBackStack(null);
            ftHide.commit();
        }
    }

    public static class TestFragment extends Fragment {
        @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
            final TextView res = new TextView(getActivity());
            res.setText("Fragment");
            return res;
        }
    }
}

--
BoD

--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to