在ApiDemos工程的FragmentHideShow类中,向我们展示了如何隐藏和显示一个已经添加进来的Fragment。在显示和隐藏时,还可以指定动画。实现步骤如下:
1. 获得FragmentManager
FragmentManager fm = getFragmentManager();
2. 获得事务对象,并指定动画:
FragmentTransaction ft =getFragmentManager().beginTransaction();
ft.setCustomAnimations(android.R.animator.fade_in,
android.R.animator.fade_out);
fade_in.xml和fade_out.xml的内容分别如下:
\sdk\platforms\android-19\data\res\animator\fade_in.xml
<objectAnimatorxmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@interpolator/accelerate_quad"
android:valueFrom="0"
android:valueTo="1"
android:propertyName="alpha"
android:duration="@android:integer/config_mediumAnimTime"
/>
\sdk\platforms\android-19\data\res\animator\fade_out.xml
<objectAnimatorxmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@interpolator/accelerate_quad"
android:valueFrom="1.0"
android:valueTo="0.0"
android:propertyName="alpha"
android:duration="@android:integer/config_mediumAnimTime"
/>
3.调用show或者hide显示或隐藏Fragment:
if (fragment.isHidden()) {
ft.show(fragment);
button.setText("Hide");
} else {
ft.hide(fragment);
button.setText("Show");
}
ft.commit();