私はそれを自分で見つけました。onCreateAnimation()
でメソッドをオーバーライドする必要がありますFragment
。これが私がやった方法です:
@Override
public Animation onCreateAnimation(int transit, boolean enter, int nextAnim) {
if (enter)
return mEnterAnimation;
else
return mExitAnimation;
}
private static final Animation mEnterAnimation = AnimationUtils
.loadAnimation(MyApplication.getInstance().getBaseContext(),
R.anim.frag_fade_in);
private static final Animation mExitAnimation = AnimationUtils
.loadAnimation(MyApplication.getInstance().getBaseContext(),
R.anim.frag_fade_out);
mEnterAnimation
andmExitAnimation
フィールドは static と宣言されていることに注意してください。経由でアニメーションをロードするAnimationUtils.loadAnimation()
には、Context
. は、シングルトンContext
を介して取得されます。MyApplication
このようなシングルトンを作成するには、次のように記述しますAndroidManifest.xml
。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.app"
android:versionCode="1"
android:versionName="1.0" >
<application
android:name=".MyApplication"
android:label="@string/app_name" >
<!-- Insert your activities here -->
</application>
</manifest>
次に、クラスcom.example.app.MyApplication
をシングルトンとして作成します。
public class MyApplication extends Application {
public static MyApplication getInstance() {
return mInstance;
}
@Override
public void onCreate() {
super.onCreate();
mInstance = this;
}
private static MyApplication mInstance;
}