새로운 활동을 시작할 때 활동 슬라이드 인 애니메이션을 비활성화 하시겠습니까? 활동이 오른쪽에서 왼쪽으로 미끄러

버튼 클릭을 통해 다른 활동을 시작하는 활동이 있습니다. 기본적으로 Android의 최신 OS 버전에서 OS는 새 활동이 오른쪽에서 왼쪽으로 미끄러 져 움직입니다.

이 애니메이션을 비활성화하는 방법이 있습니까? 새로운 활동이 애니메이션없이 나타나기를 원합니다.



답변

FLAG_ACTIVITY_NO_ANIMATION플래그 활동을 시작할 때 애니메이션을 비활성화하는 벌금을 작동합니다.

finish()액티비티를 호출 할 때 트리거되는 유사한 애니메이션을 비활성화하려면 ( 예 : 애니메이션이 대신 오른쪽에서 왼쪽으로 슬라이드) 호출 overridePendingTransition(0, 0)한 후 호출 finish()하면 다음 애니메이션이 제외됩니다.

또한을 호출 overridePendingTransition(0, 0)한 후 전화 하면 애니메이션에서 작동합니다 startActivity(...).


답변

IMHO 답변은 가장 우아한 방법으로 문제를 해결합니다.

개발자는 스타일을 만들어야합니다 .

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

그런 다음 매니페스트 에서 활동 또는 전체 응용 프로그램의 테마로 설정합니다 .

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

짜잔! 좋고 쉬운 ..

원저자에 대한 PS 크레딧 ..


답변

대다

startActivity(new Intent(FirstActivity.this,SecondActivity.class));

그때

overridePendingTransition(0, 0);

애니메이션이 중지됩니다.


답변

내 생각에 가장 좋은 대답은 사용하는 것입니다 "overridePendingTransition(0, 0);"

당신이 할 때 애니메이션을 보는 피하기 위해 IntentActivity사용 :

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

다시 버튼을 무시 누를 때와 애니메이션을 볼 수 있습니다 onPause에서 방법을 당신의newactivity

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


답변

Intent.FLAG_ACTIVITY_NO_ANIMATION시작할 때 플래그를 지정하십시오.


답변

이것은 활동 완료 애니메이션을 비활성화 할 때 효과적입니다.

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


답변

4.4.2 에 있고 시작 활동의 onCreate ()에서 overridePendingTransition (0, 0)을 호출 하면 시작 애니메이션이 비활성화됩니다 (startActivity ()가 작동하지 않은 즉시 overridePendingTransition (0, 0) 호출). 다른 답변에서 언급했듯이 finish () 다음에 overridePendingTransition (0, 0)을 호출하면 닫기 애니메이션이 비활성화됩니다.

Btw, “android : windowAnimationStyle”> @ null (여기에 언급 된 또 다른 대답)로 스타일을 설정하면 시작 활동이 작업 표시 줄 제목을 설정하려고 할 때 충돌이 발생했습니다. 더 나아가 디버깅을 통해 액티비티의 initActionBar ()에서 window.hasFeature (Window.FEATURE_ACTION_BAR)가 실패한다는 것을 알았습니다.