[android] 안드로이드에서 애니메이션없이 활동을 전환하는 방법은 무엇입니까?

FLAG_ACTIVITY_NO_ANIMATIONAndroidManifest 파일에서 Intent 플래그 를 올바르게 사용하려면 어떻게 해야합니까? 내 문제가 사소한 것이라고 생각하지만 좋은 예나 해결책을 찾을 수 없습니다.

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

그러나 compliator는 오류를보고 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 에서이 플래그를 사용하고 싶습니다. 두 번째 활동에서 첫 번째 활동으로 돌아 오는 경우에도 애니메이션을 비활성화합니다.



답변

스타일을 만들 수 있습니다.

 <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


답변

컨텍스트가 활동 인 경우 overridePendingTransition 을 호출 할 수 있습니다 .

startActivity (Intent)의 특징 중 하나 직후에 호출하거나 다음에 수행 할 명시 적 전환 애니메이션을 지정하기 위해 완료하십시오.

따라서 프로그래밍 방식으로 :

this.startActivity(new Intent(v.getContext(), newactivity.class));
this.overridePendingTransition(0, 0);


답변

이 코드를 사용해보십시오

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


답변

전환하고 싶지 않은 모든 활동 에서이 작업을 수행 할 수도 있습니다.

@Override
public void onPause() {
    super.onPause();
    overridePendingTransition(0, 0);
}

나는 당신이 당신의 활동 스타일을 망칠 필요가 없기 때문에이 접근법을 좋아합니다.


답변

이 예제는 사용 방법이나 사용 방법에 대한 설명이 아니지만 사용 FLAG_ACTIVITY_NO_ANIMATION하지 않는 방법에 대한 답변입니다.Activity 질문 제목에서 요청한대로 전환 애니메이션 에 대한 답변입니다.

안드로이드, 새로운 활동을 시작할 때 ‘와이프’효과를 비활성화하는 방법은 무엇입니까?


답변

다음은 minSdkVersion 14삽입해야하는 한 낮은 라이너 솔루션입니다 res/styles.xml.

<item name="android:windowAnimationStyle">@null</item>

이렇게 :

<resources>
    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        ...
        <item name="android:windowAnimationStyle">@null</item>
    </style>
    ...
</resources>

건배!


답변

테마 스타일의 선은 제대로 작동하지만 애니메이션이 흰색 화면으로 바뀝니다. 특히 느린 전화에서는 정말 짜증납니다. 따라서 즉각적인 전환을 원한다면 이것을 테마 스타일로 사용할 수 있습니다.

<item name="android:windowAnimationStyle">@null</item>
<item name="android:windowDisablePreview">true</item>