새로운 활동을 시작할 때 활동 슬라이드 인 애니메이션을 비활성화 하시겠습니까?
버튼 클릭을 통해 다른 활동을 시작하는 활동이 있습니다. 기본적으로 Android의 최신 OS 버전에서 OS는 새 활동이 오른쪽에서 왼쪽으로 미끄러 져 움직입니다.
이 애니메이션을 비활성화하는 방법이 있습니까? 새로운 활동이 애니메이션없이 나타나기를 원합니다.
FLAG_ACTIVITY_NO_ANIMATION
플래그 활동을 시작할 때 애니메이션을 비활성화하는 벌금을 작동합니다.
finish()
액티비티를 호출 할 때 트리거되는 유사한 애니메이션을 비활성화하려면 ( 예 : 애니메이션이 오른쪽에서 왼쪽으로 대신 슬라이드) 호출 overridePendingTransition(0, 0)
한 후 호출 finish()
하면 다음 애니메이션이 제외됩니다.
호출 overridePendingTransition(0, 0)
후에 전화 하면 애니메이션에서 작동합니다 startActivity(...)
.
이럴 이 대답은 여기에 가장 우아한 방법으로 문제를 해결 ..
개발자는 스타일을 만들어야합니다 .
<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);"
당신이 할 때 애니메이션을 보는 피하기 위해 Intent
에 Activity
사용 :
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)가 실패한다는 것을 알았습니다.
FLAG_ACTIVITY_NO_ANIMATION은 작동 할 수 있지만 FLAG_ACTIVITY_CLEAR_TASK 및 FLAG_ACTIVITY_NEW_TASK와 결합하면 나에게 속임수가 없었습니다. 다른 최상위 뷰로 측면으로 탐색 할 때 새로운 활동 스택으로 새 작업을 생성하기위한 애니메이션이 보입니다.
여기서 효과가 있었던 것은 "overridePendingTransition (0, 0);" 내 startActivity () 호출 직후 또는 onPause (). 두 가지 방법 모두 효과가 있었지만 startActivity () 후에 수행하면 애니메이션을 원할 때와 원하지 않을 때를 조금 더 제어 할 수 있습니다.
이미 스택에서 활동을 시작할 때 검은 배경을 피하기 위해 다음을 추가 overridePendingTransition(0,0)
했습니다 onStart()
.
@Override
protected void onStart() {
overridePendingTransition(0,0);
super.onStart();
}
I had a similar problem of getting a black screen appear on sliding transition from one activity to another using overridependingtransition
. and I followed the way below and it worked
1) created a noanim.xml
in anim folder
<?xml version="1.0" encoding="utf-8"?>
<translate
xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_longAnimTime"
android:fromYDelta="0%p"
android:toYDelta="0%p" />
and used
overridePendingTransition(R.drawable.lefttorightanim, R.anim.noanim);
The first parameter as my original animation and second parameter which is the exit animation as my dummy animation
'IT story' 카테고리의 다른 글
nodejs를 사용하여 이미지를 제공하는 방법 (0) | 2020.07.04 |
---|---|
개발자에게 PC에 대한 관리자 권한이 있어야합니다 (0) | 2020.07.04 |
JavaScript-두 날짜 사이에 분을 가져옵니다 (0) | 2020.07.04 |
동일한 TextView에서 문자열의 다른 글꼴 크기 (0) | 2020.07.04 |
파이썬 요청 시간 초과. 전체 응답 받기 (0) | 2020.07.04 |