есть утилита recyclerview в приложении android, и я хочу, чтобы транзакция общего элемента, когда пользователь переходит к другому фрагменту, для которого я пытался, как указано ниже, в коде.транзакция общего элемента, не работающая с recyclerview, когда более одного элемента
просмотр изображений в строке файла XML
<ImageView
android:id="@+id/iv_album_thumbnail"
android:layout_width="match_parent"
android:layout_height="160dip"
android:layout_gravity="center"
android:transitionName="image_transit"
android:scaleType="centerCrop"
tools:ignore="ContentDescription"
android:src="@drawable/img_default"
android:gravity="center" />
вид изображения во втором фрагменте
<ImageView
android:id='@+id/iv_album_thumbnail'
android:layout_width="wrap_content"
android:layout_centerHorizontal="true"
android:layout_height="wrap_content"
android:transitionName="image_transit"
tools:ignore="ContentDescription,UnusedAttribute"
android:layout_marginTop="60dip"
android:layout_alignParentTop="true"
android:src="@drawable/placeholder" />
по методу щелчка
public void onAlbumClicked(RecyclerViewAdapter.ViewHolder holder, int position) {
SongListFragment kittenDetails = SongListFragment.newInstance(aList.get(position));
// Note that we need the API version check here because the actual transition classes (e.g. Fade)
// are not in the support library and are only available in API 21+. The methods we are calling on the Fragment
// ARE available in the support library (though they don't do anything on API < 21)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
kittenDetails.setSharedElementEnterTransition(new DetailsTransition());
kittenDetails.setEnterTransition(new Fade());
setExitTransition(new Fade());
kittenDetails.setSharedElementReturnTransition(new DetailsTransition());
}
getActivity().getSupportFragmentManager()
.beginTransaction()
.addSharedElement(holder.imgPicture, "image_transit")
.setCustomAnimations(R.anim.fade_in, R.anim.fade_out)
.replace(R.id.root, kittenDetails)
.addToBackStack(null)
.commit();
}
если есть только один товар в recyclerview
, он работает отлично, но когда есть более одного предмета в recyclerview
, никакого эффекта совсем не может, может кто-нибудь захочет смородину меня.
Спасибо @bwt, но можете ли вы сказать мне, Whee я должен добавить 'SetTransitionName' в моем коде? –
Я бы поместил его в 'if (Build.VERSION.SDK_INT> = Build.VERSION_CODES.LOLLIPOP) {' block – bwt
yaa спасибо, работая красиво Спасибо! еще раз –