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

Reply via email to