2012-06-28 2 views
1

나는 다음과 같은 사용자 정의 테마를 사용하여 대화 상자로 표시 활동이 있습니다활동에 대한 애니메이션을 중지하는 방법

<style name="ThemeDialogNoAnimation"> 
    <item name="android:windowAnimationStyle">@null</item> 
    <item name="android:windowEnterAnimation">@null</item> 
    <item name="android:windowExitAnimation">@null</item> 
    <item name="android:windowFrame">@null</item> 
    <item name="android:windowContentOverlay">@null</item> 
    <item name="android:windowIsFloating">true</item> 
    <item name="android:background">@android:color/transparent</item> 
    <item name="android:windowNoTitle">true</item> 
    <item name="android:backgroundDimEnabled">true</item> 
</style> 

공지 사항 나는 어떤 애니메이션이 설정되지 않은를, 아직 활동이 존재하는 경우에 여전히 오른쪽으로 슬라이드 . 애니메이션 효과를 어떻게 막을 수 있습니까?

답변

2

보고있는 애니메이션은 시스템에서 왔을 가능성이 있지만 쉽게 재정의 할 수 있습니다.

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    overridePendingTransition(0, 0); 
} 

활동이 완료되면 더 전환을하지 않으려면 : 활동이 시작되면 더 전환을하지 않으

사용하는 시스템으로 전환 신호를 무시하는 경우

@Override 
public void finish() { 
    super.finish(); 

    overridePendingTransition(0, 0); 
} 

는 0에 전달 전환 없음 0 대신에 리소스 식별자를 애니메이션 리소스에 전달하여 사용자 정의 전환을 추가 할 수도 있습니다.

+0

그건 속임수 였어, 고마워! – Rooster242

+0

실제로 이것은 거의 작동합니다. 나는 활동 A의 onResume()에서 활동 B를 시작하고있다. 활동 B는 전체 화면이 아니기 때문에 그 아래에서 활동 A를 볼 수 있으며이 기술은 또한 입력시 활동 A의 전환에 영향을 미친다. 나는 활동 B의 전환에만 영향을주고 싶다. – Rooster242

+0

overridePendingTransition은 애니메이션 리소스에 대한 식별자를 사용합니다. 첫 번째는 입력 전환이고, 두 번째는 종료입니다. B에 대해서만 전이를 원하지 않으면, onCreate에 enter 전환을 0으로 지정하고 Activity B를 finish로 종료 전환을 0으로 지정하십시오. 불행하게도 다른 활동에 기본값을 사용하도록 시스템에 지시 할 수는 없습니다 . 다른 활동에 우선적으로 영향을 미칠 것입니다. Android OEM은 기본 전환을 조정할 것입니다. 그러나 기본값을 설정하려면 android.R.anim.fade_in 및 android.R.anim.fade_out이 기본값입니다. – MCeley

관련 문제