안드로이드에서 애니메이션 없이 활동을 전환하는 방법?
인텐트 플래그를 제대로 사용하려면 어떻게 해야 합니까?FLAG_ACTIVITY_NO_ANIMATION
Android Manifest 파일에 저장되어 있습니까?저는 제 문제가 사소한 것이라고 생각하지만, 그것에 대한 좋은 예나 해결책을 찾을 수 없습니다.
<intent-filter>
<data android:name="android.content.Intent.FLAG_ACTIVITY_NO_ANIMATION" />
</intent-filter>
그러나 컴파일러에 의해 오류가 보고되지는 않지만,data
정확하지 않습니다.활동 간 전환 시 애니메이션을 비활성화하고 싶습니다.사용할 수 있습니다getWindow().setWindowAnimations(0);
create나 resume에서 하는 것이 낫지만 플래그를 사용하는 것이 더 좋은 방법이 아닐까요?
코드에서도 사용할 수 있습니다.
Intent intent = new Intent(v.getContext(), newactivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
getContext().startActivity(intent);
하지만 저는 안드로이드 매니페스트에서 이 깃발을 사용하고 싶습니다.두 번째 활동에서 첫 번째 활동으로 돌아오는 경우에도 애니메이션을 비활성화합니다.
스타일을 만들 수 있고,
<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) 또는 finish의 맛 중 하나가 끝나면 바로 호출합니다.
프로그래밍 방식으로:
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);
}
저는 이 접근법이 마음에 듭니다. 왜냐하면 당신이 당신의 활동 스타일을 엉망으로 만들지 않아도 되기 때문입니다.
테마 스타일의 선은 잘 작동하지만 애니메이션을 흰색 화면으로 대체합니다.특히 느린 폰에서는 정말 짜증납니다.따라서 즉시 전환을 원할 경우 테마 스타일에서 이를 사용할 수 있습니다.
<item name="android:windowAnimationStyle">@null</item>
<item name="android:windowDisablePreview">true</item>
다음은 한 가지 비용으로 작동하는 원-라이너 솔루션입니다.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>
건배!
의도를 시작한 후 이 코드를 사용할 수 있습니다.
Intent intent = new Intent(Activity1.this, Activity2.class);
overridePendingTransition(0, 0);
intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivity(intent);
사용할 경우 애니메이션이나 전환 없이 의도가 작동합니다.
사용 예시나 사용 방법에 대한 설명이 아닙니다.FLAG_ACTIVITY_NO_ANIMATION
, 그러나 그것은 어떻게 그것을 비활성화 할 수 있는지에 대한 답을 합니다.Activity
애니메이션 전환, 질문 제목:
안드로이드, 새로운 활동 시작 시 '와이프' 효과 비활성화하는 방법?
Android:테마를 재정의하는 자신만의 스타일 만들기
<style name="noAnimationStyle" parent="android:Theme">
<item name="android:windowAnimationStyle">@null</item>
</style>
그런 다음 매니페스트에 사용합니다.
<activity android:name=".MainActivity"
android:theme="@style/noAnimationStyle">
</activity>
언급URL : https://stackoverflow.com/questions/6972295/how-to-switch-activity-without-animation-in-android
'itsource' 카테고리의 다른 글
다음에 어울리는 형제를 찾는 효율적이고 간결한 방법? (0) | 2023.10.29 |
---|---|
왜 탈참조를 가리켜 탈참조라고 합니까? (0) | 2023.10.29 |
jQuery .hasClass() vs.is() (0) | 2023.10.29 |
PACKET_MMAP 및 PACKET_TX_RING을 사용한 데이터 전송 속도가 "정상"보다 느림(없음) (0) | 2023.10.29 |
도커 파일을 사용하여 로컬 wp-content 파일을 Wordpress 컨테이너에 복사하는 방법 (0) | 2023.10.29 |