안녕하세요 다시 스택 오버 플로우가 발생합니다. 다른 단편적인 질문이 있습니다. (android.app.Fragment Support Fragments를 사용하고 있습니다)조각의 대체 높이 값이 잘못되었습니다.
조각을 대체하려고합니다. 그러나 이것은 사용하는 것만 큼 간단하지 않다 :
fragmentTransaction
.replace(containerId, newFragment)
.addToBackStack("unique tag")
.commit()
왜? 좋은 질문 친구, 왜냐하면 내 newFragment
에 전환 애니메이션이 있기 때문입니다.
애니메이션은 어디에 정의되어 있습니까? 또 하나의 큰 의문점은 onCreateAnimator()에 정의 된 것입니다.
왜 거기에 정의되어 있습니까? 이유에 대한 오랜 대답은 Nested fragments transitioning incorrectly입니다. 지금 당장 당신은 이것이 내 프로젝트에서해야 할 일들이라고 믿어야합니다.
애니메이션이란 무엇입니까? 화면의 가장자리에서 중앙으로 간단하게 스크롤하여 원래 조각을 완전히 덮습니다. 이 시나리오에서는 이전 조각이 그대로 자리 잡고 있음을 명심하십시오. 움직이지 않는 애니메이션 효과가 있습니다.
무엇이 문제인가?
newFragment가 이전보다 낮은 elevation (또는 z?) 값을 갖는 것 같습니다. 따라서 이전 조각이 새 조각 위에 있기 때문에 전환을 관찰 할 수 없습니다. 애니메이션 기간이 끝나면 이전 조각 위에 새로운 조각이 깜박입니다. 나는 newFragment가 애니메이션의 시작 부분에서 이전 것을 커버 할 것으로 기대했다.
왜 사용하지 않습니까? 이것은 많은 조각을 가지고 있기 때문에 더 많은 문제를 일으키는 것으로 보입니다. add를 사용하면 다음에 교체 할 때 exit 애니메이션이 실행되는 것처럼 보입니다. 앞에는 1 ... n 개의 조각이 있어도 마찬가지입니다. 그들은 또한 멈추지 않습니다.
고도를 설정하지 않는 이유는 무엇입니까? 왜냐하면 고도 속성이없는 api 19를 지원하기 때문입니다.
api 19에 ViewCompat.setElevation()을 사용하지 않는 이유는 무엇입니까? 나는 그것을 시도하고 동일한 실패 결과가 있습니다.
누구든지이 문제를 해결할 방법을 찾았습니까?
트랜잭션을 커밋하기 전에 applyin ['setReorderingAllowed (false)'] (https://developer.android.com/reference/android/support/v4/app/FragmentTransaction.html#setReorderingAllowed (boolean))을 시도 했습니까? – azizbekian
API에서 유일하게 사용할 수있는 @azizbekian 26+ – zafrani
사실은 아니지만 적어도 API 14 이상에서는 지원 부분을 사용할 수 있습니다. – azizbekian