Мое приложение работает следующим образом:
- Фрагмент дневника (ListView) - загружается со списком продуктов с сервера
- Фрагмент продукта - добавление продукта в дневник (POST ксервер и откройте и обновите дневник)
Я хочу, чтобы имя продукта TextView из Product Fragment имело переход общего элемента с этим именем продукта TextView после того, как оно было добавлено в просмотр списка для достижения приятной непрерывности.
То, что я до сих пор делал, это:
При добавлении я сохраняю productID, чтобы позже я мог проверить, какой из них должен быть анимирован следующим образом:
ParentActivity.ADDED_TO_DIARY_SHARED_ELEMENT_ID = prodcutID;
((ParentActivity)getActivity()).addToDiarySharedElement(descriptiontext, ParentActivity.ADD_TO_DIARY_SHARED_ELEMENT_TRANSITON_NAME);
Затем я задерживаю анимацию при вводе фрагмента списка
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View root = inflater.inflate(R.layout.diary_fragment_redesign, container, false);
// Postpone the shared element enter transition.
postponeEnterTransition();
}
Затем, когда данные загружаются в адаптер, я пытаюсь найти идентификатор продукта, который был только что добавлен
//this product was just added, assign it a shared element transition name
if(ParentActivity.ADDED_TO_DIARY_SHARED_ELEMENT_ID == dbChild.getProductID()){
ViewCompat.setTransitionName(item_description,ParentActivity.ADD_TO_DIARY_SHARED_ELEMENT_TRANSITON_NAME);
sharedElementDrawnInterface.sharedElementDrawn(item_description);
}
Это вызываетобратный вызов для возобновления анимации
private void scheduleStartPostponedTransition(final View sharedElement, ExpandableListView listview) {
if(listview!=null && sharedElement!=null) {
listview.getViewTreeObserver().addOnPreDrawListener(
new ViewTreeObserver.OnPreDrawListener() {
@Override
public boolean onPreDraw() {
sharedElement.getViewTreeObserver().removeOnPreDrawListener(this);
startPostponedEnterTransition();
return true;
}
});
}
}
Но анимация не происходит
Я не могу найти ничего о создании новых представлений с переходом общего элемента наИнтернет, всего два существующих представления по обе стороны анимации
Есть идеи?
С уважением