Rotating the screen restarts the activity unless you explicitly tell the OS
not to do that.
On Thursday, April 19, 2012 7:38:52 AM UTC-4, BoD wrote:
>
> 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 [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en