0

나는 최근에 하나의 액티비티 (박테리아 & 흐름 덕분에)를 전환 한 다음 다음 코드로 새로운 활동을 시작하는 대신 전체 화면보기를 전환합니다.활동이보기와 다른 점이 있습니까?

setAnimation(direction, oldChild, newChild); 

    // Out with the old, in with the new. 
    if (oldChild != null) container.removeView(oldChild); 
    container.addView(newChild); 
} 

protected void setAnimation(Flow.Direction direction, View oldChild, View newChild) { 
    if (oldChild == null) return; 

    int out = direction == Flow.Direction.FORWARD ? R.anim.slide_out_to_left : R.anim.slide_out_to_right; 
    int in = direction == Flow.Direction.FORWARD ? R.anim.slide_in_from_right : R.anim.slide_in_from_left; 

    oldChild.setAnimation(loadAnimation(context, out)); 
    newChild.setAnimation(loadAnimation(context, in)); 
} 

이 전환은 내가 나에게

activity.startActivity(); 
    activity.overridePendingTransition(R.anim.slide_in_from_right, R.anim.nudge_out_to_left); 

활동 사이에서 전환하는 데 사용 방법을 정확하게 모두 동일하지만, 내가 무엇을보고하고하는 것은 뭔가 특별한 일이 일어나고 있다는 것입니다 렌더링해야 뷰 및 활동 전환 활동 전환에서 어떤 종류의 페이드 아웃도 있습니다.

누구나 내가보기 전환하여 2 개의 활동 전환과 동일한 것으로 전환되는 것을 알 수 있습니까? 둘 이상의 활동이 필요하지 않지만 활동 전환의 매끄러움을 잃어 버리는 것을 싫어하는 접근 방식으로 완전히 이동하고 싶습니다.

답변

0

하나가 아닌 두 가지 활동으로 코드를 분리 할 수 ​​있습니다. 이것은 활동에서 몇 가지 정적 인 견해 (텍스트, 이미지, ...)를 공유하지만 두 번째 활동에서 훨씬 더 많은 일을하는 경우 매우 유용합니다. 하나의보기 또는 두 가지 활동 대신 조각을 사용하는 경우 가끔 좋은 해결책입니다.

공유 요소의 조각과 특히 조각 전환에 대해 문서를 읽으십시오. 처리가 쉽고 코드를 깨끗하게 유지할 수 있습니다.

+0

여기에 설명 된 이유로 조각에서 벗어나려고합니다. http://corner.squareup.com/2014/10/advocating-against-android-fragments.html. 저는 안드로이드가 액티비티를 어떻게 전환시키는 지 묻고 있었고, 전달되는 애니메이션으로부터 바깥에서 일어나는 다른 것이 있다면 – FriendlyMikhail

+0

바깥에서 무엇을 의미합니까? – Mann

+0

뷰 생성 애니메이션을 다음과 같은 활동 시작 애니메이션과 동일하게 설정했습니다. 그러나 전환 장면을 볼 때 전환 효과를 만들기 위해 아무 것도하지 않더라도 이전 활동이 사라지는 것처럼 보입니다. – FriendlyMikhail

0

코드 예에서 서로 다른 두 개의 예외를 사용합니다. 한 번은 nudge_out이고 다른 한 번은 slide_out입니다. 우연히 나는 그것을 모른다. 어쩌면 활동에 대한 글로벌 페이드 아웃이 있습니까?!

+0

확인해 보셨습니까? – Mann

관련 문제