Я пытаюсь создать анимацию перехода между ImageView элемента RecyclerView и ImageView во фрагменте сведений. Я попробовал это с другим представлением из первого фрагмента, вне RecyclerView, и со вторым фрагментом, и все работает нормально.
Вот метод привязки данных из ViewHolder with(binding) {
ViewCompat.setTransitionName(ivProperty, property.propertyId)
setPropertyImage(property)
setBrandingLogoData(property.branding?.first())
tvPropertyAddress.text = property.getName()
tvPropertyPrice.text = property.listPrice?.toString()
tvPropertyBeds.showText(property.description?.beds?.toString())
tvProperyBaths.showText(property.description?.baths?.toString())
tvPropertySqft.showText(property.description?.sqft?.toString())
root.onClick { onItemClick(property, ivProperty) }
}
}```
onItemClick method from fragment with RecyclerView
```fun openPropertyDetails(property: Property, view: ImageView) {
val extras = FragmentNavigatorExtras(
view to view.transitionName
)
SearchFragmentDirections.openPropertyDetails(property, view.transitionName).navigate(extras)
}```
Fragment Details code
```override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
sharedElementEnterTransition =
TransitionInflater.from(context).inflateTransition(android.R.transition.explode)
}
override fun initViews() {
with(binding) {
postponeEnterTransition()
ivProperty.transitionName = args.transitionName
glideImage(args.property.primaryPhoto.url, ivProperty)
setPropertyDescriptionFilters(args.property.description)
setBrandingInfo(args.property.branding?.first())
tvPropertyAddress.text = args.property.getName()
tvPropertyPrice.text =
getString(R.string.view_sale_property_description_price, args.property.listPrice)
if (args.property.lastUpdateDate != null) {
tvSalePropertyTime.text = getString(
R.string.screen_sale_property_details_property_description_last_update_title,
args.property.lastUpdateDate.toUiTime(
SERVER_YEAR_MONTH_DAY_TIME_PATTERN,
UI_DATE_PATTERN_WITH_TIME_AND_SPACE
)
)
tvSalePropertyTime.show()
}
}
// args.property.propertyId?.let { viewModel.getPropertyDetails(it) }
}```
glideImage Method
```fun Fragment.glideImage(url: String?, view: ImageView) = Glide.with(view)
.load(url)
.diskCacheStrategy(DiskCacheStrategy.RESOURCE)
.skipMemoryCache(false)
.apply(
RequestOptions().dontTransform() // this line
)
.addListener(object : RequestListener {
override fun onLoadFailed(
p0: GlideException?,
p1: Any?,
p2: Target?,
p3: Boolean
): Boolean {
Timber.i("startPostponedEnterTransition error")
startPostponedEnterTransition()
return false
}```
Подробнее здесь: https://stackoverflow.com/questions/784 ... ent-detail
Невозможно создать анимацию перехода между элементом просмотра переработчика и деталями фрагмента. Джетпак Навигация ⇐ Android
Форум для тех, кто программирует под Android
1714596985
Anonymous
Я пытаюсь создать анимацию перехода между ImageView элемента RecyclerView и ImageView во фрагменте сведений. Я попробовал это с другим представлением из первого фрагмента, вне RecyclerView, и со вторым фрагментом, и все работает нормально.
Вот метод привязки данных из ViewHolder with(binding) {
ViewCompat.setTransitionName(ivProperty, property.propertyId)
setPropertyImage(property)
setBrandingLogoData(property.branding?.first())
tvPropertyAddress.text = property.getName()
tvPropertyPrice.text = property.listPrice?.toString()
tvPropertyBeds.showText(property.description?.beds?.toString())
tvProperyBaths.showText(property.description?.baths?.toString())
tvPropertySqft.showText(property.description?.sqft?.toString())
root.onClick { onItemClick(property, ivProperty) }
}
}```
onItemClick method from fragment with RecyclerView
```fun openPropertyDetails(property: Property, view: ImageView) {
val extras = FragmentNavigatorExtras(
view to view.transitionName
)
SearchFragmentDirections.openPropertyDetails(property, view.transitionName).navigate(extras)
}```
Fragment Details code
```override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
sharedElementEnterTransition =
TransitionInflater.from(context).inflateTransition(android.R.transition.explode)
}
override fun initViews() {
with(binding) {
postponeEnterTransition()
ivProperty.transitionName = args.transitionName
glideImage(args.property.primaryPhoto.url, ivProperty)
setPropertyDescriptionFilters(args.property.description)
setBrandingInfo(args.property.branding?.first())
tvPropertyAddress.text = args.property.getName()
tvPropertyPrice.text =
getString(R.string.view_sale_property_description_price, args.property.listPrice)
if (args.property.lastUpdateDate != null) {
tvSalePropertyTime.text = getString(
R.string.screen_sale_property_details_property_description_last_update_title,
args.property.lastUpdateDate.toUiTime(
SERVER_YEAR_MONTH_DAY_TIME_PATTERN,
UI_DATE_PATTERN_WITH_TIME_AND_SPACE
)
)
tvSalePropertyTime.show()
}
}
// args.property.propertyId?.let { viewModel.getPropertyDetails(it) }
}```
glideImage Method
```fun Fragment.glideImage(url: String?, view: ImageView) = Glide.with(view)
.load(url)
.diskCacheStrategy(DiskCacheStrategy.RESOURCE)
.skipMemoryCache(false)
.apply(
RequestOptions().dontTransform() // this line
)
.addListener(object : RequestListener {
override fun onLoadFailed(
p0: GlideException?,
p1: Any?,
p2: Target?,
p3: Boolean
): Boolean {
Timber.i("startPostponedEnterTransition error")
startPostponedEnterTransition()
return false
}```
Подробнее здесь: [url]https://stackoverflow.com/questions/78415931/cant-make-a-transition-animation-between-recycler-view-item-and-fragment-detail[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия