1. ホーム
  2. android

[解決済み] Androidでアニメーションを使わずにアクティビティを切り替えるには?

2022-04-20 01:26:59

質問

Intentフラグを正しく使うには FLAG_ACTIVITY_NO_ANIMATION をAndroidManifestファイル内で使用することはできますか?私の問題は些細なことだと思うのですが、良い例や解決策が見当たりません。

    <intent-filter>
        <data android:name="android.content.Intent.FLAG_ACTIVITY_NO_ANIMATION" />
    </intent-filter>

しかし、コンパイラからはエラーは報告されません。 data は正しくありません。 アクティビティが切り替わったときに、アニメーションを無効にしたいだけです。私は getWindow().setWindowAnimations(0); をonCreateやonResumeで使用することができますが、フラグを使用する方が良いのではないでしょうか?

コード内でも使えますね。

    Intent intent = new Intent(v.getContext(), newactivity.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
    getContext().startActivity(intent);

しかし、Android Manifestでこのフラグを使いたいのです。2番目のアクティビティから1番目のアクティビティに戻る場合にもアニメーションを無効にする。

どのように解決するのですか?

スタイルを作ることができます。

 <style name="noAnimTheme" parent="android:Theme">
   <item name="android:windowAnimationStyle">@null</item>
</style>

を作成し、マニフェスト内のアクティビティのテーマとして設定します。

   <activity android:name=".ui.ArticlesActivity" android:theme="@style/noAnimTheme">
    </activity>

また、スタイルを定義することで、カスタム入退場アニメーションを指定することも可能です。 http://developer.android.com/reference/android/R.attr.html#windowEnterAnimation