【发布时间】:2020-06-26 14:12:36
【问题描述】:
我正在使用 androidx 导航组件。在 FragmentA 中,我有一个带有卡片的回收站视图。这些卡片包含一个图像和一个点赞按钮。当用户喜欢内容时,点赞按钮资产会发生变化。 此卡片内容是一个单独的布局,包含在 RecyclerViews.ViewHolder 布局中:
<MaterialCardView>
<include layout="@layout/item_main_content_layout" />
</MaterialCardView>
以及上面包含的 item_layout:
<merge>
<LinearLayout
android:id="@+id/content"
android:transitionName="content">
<ImageView
android:id="@+id/image"/>
<ImageView
android:id="@+id/like"/>
</LinearLayout>
</merge>
在适配器中绑定视图持有者期间,我使用唯一 ID 动态更新 transitionName。
FragmentB 包含相同的布局,并且在创建视图时,我使用正在传递的项目更新过渡名称。
当通过单击一个项目从 FragmentA -> FragmentB 导航时,共享转换按预期工作。当我弹回堆栈时,它会按预期回退到列表中的原始位置。
问题
如前所述。当我喜欢/不喜欢内容时,点赞按钮的资产会发生变化。当我打开 FragmentB 时,会保留类似 ImageView 的资产。但是当我更改状态时,我更改了 FragmentB 中的like 按钮的资产并弹回堆栈,发生了转换,但按钮资产切换回了 FragmentA。
弹回堆栈时如何在共享元素中保留src drawable?
【问题讨论】:
标签: android android-fragments android-architecture-navigation shared-element-transition