Просто примечание, обязательно удалите все android:transitionName
из XML.
Я считаю, что причина вашей проблемы в том, что вы установили имя перехода в onClick
.Вот почему при первом щелчке переход не работает, поскольку имя не задано, а при втором щелчке имя уже задано (при первом щелчке ) поэтому переход работает.Решением будет перемещение именования переходов с setOnClickListener
на onBindViewHolder
, чтобы имя перехода устанавливалось до щелчка.
РЕДАКТИРОВАТЬ:
Если нетпо вышеуказанной причине или из-за путаницы в именах переходов это может быть связано с готовностью ImageView
s, когда происходит переход, в этом случае вам нужно отложить переход до тех пор, пока представления не будут готовы.
Попробуйте в своем ImageActivity
in onCreate
позвонить supportPostponeEnterTransition()
(потому что я полагаю, что вы используете вспомогательную версию библиотеки Transition), а когда вы загружаете свое изображение в ImageView
, загрузите егокогда он будет готовЭтого легче достичь, используя Picasso или любую другую подобную библиотеку, поэтому ваша ImageActivity
s onCreate
будет выглядеть примерно так:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_image);
supportPostponeEnterTransition();
// inflate you views
// get your image URL
Picasso.with(this)
.load(imageUrl)
.noFade()
.into(imageView, new Callback() {
@Override
public void onSuccess() {
supportStartPostponedEnterTransition();
}
@Override
public void onError() {
supportStartPostponedEnterTransition();
}
});
}