2017-03-07 4 views
0

나는 recyclerView에서 가지고있는 문제를 해결하기 위해 며칠 동안 일해왔다. 세부 정보를 입력하지 않겠습니다. 이는 상당히 높은 수준의 질문입니다.RecyclerView 공유 전환 및 항목 애니메이터 비 호환성?

특정 순서로 항목이있는 RecyclerView와 항목 내용을 편집 할 수있는 세부 활동이 있습니다. 호출하는 활동의 RecyclerView에서 항목 순서를 변경할 수있는 방식으로 내용이 변경 될 수 있습니다.

세부 활동과의 공유 항목 전환이 있습니다. 문제는 항목 순서에 영향을주는 변경을 수행하면 RecyclerView 항목으로 다시 공유되는 전환이 항상 새로운 항목이 아닌 이전 항목 위치로 이동한다는 것입니다.

간략히 말하면, 활동 재 입력에서 입력 전환을 연기하고, 어댑터 데이터 관찰자를 사용하여 데이터 변경을 "대기"하고, 새 항목 위치를 결정하고, 해당 위치로 스크롤 한 다음 연기 된 입장 전환을 시작하십시오.

로깅을 모두 디버깅하는 경우에도 onMapSharedElements 및 onCaptureSharedElementSnapshot까지 모두 문제가없는 것으로 보입니다. 효과는 공유 항목이 이전 위치로 움직 인 다음 새 항목으로 점프하는 것입니다.

그러나 이것을 해결할 방법을 찾았습니다. 세부 정보를 호출하고 시작 연기 이후에 다시 활성화하면 RecyclerView의 항목 애니메이터를 사용하지 않도록 설정했습니다. 아이템 애니메이터가 공유 전환으로 무언가를 위장하거나 간섭하고있는 것 같습니다.

이 문제를 해결하는 올바른 방법은 무엇입니까?

답변

0

결과 코드가 startActivityForResult이고 onActivityReenter 인 을 사용하면이 방법을 사용할 수 있습니다.

onActivityReenter을 호출하면 전환을 연기하고 항목을 재정렬 한 다음 공유보기를 새 위치로 되돌릴 수 있습니다.

여기에 구현 된 작업은 example available for this use case입니다.