gpt4 book ai didi

java - 具有多个 id 的共享元素转换

转载 作者:行者123 更新时间:2023-12-01 18:44:30 26 4
gpt4 key购买 nike

我正在尝试在两个 Activity 之间创建共享元素转换,在第一个 Activity 上,我们将其称为 Activity A。我有两个具有相同 ID 的 View 。现在您会问:但是如何创建具有两个具有相同 id 的 View 的 Activity ?请允许我解释一下。

我有一个自定义卡片 View ,我的 Activity A 上有它的多个实例,我们将它们称为 CV1CV2CV1CV2 都有一个 TextView 标题,并且由于它们是相同的自定义 View ,因此两个标题共享相同的 id。

我想要做什么:当用户单击 CV1 时,我希望将 CV1 标题设置为 Activity B 标题的动画,当用户单击 CV2 时,我希望将 CV2 标题设置为 Activity B 标题的动画,等等...

发生了什么:当我单击 CV2、CV3 或 CV4... 时,动画标题始终是 CV1 标题。是的,CV1 是我屏幕上的第一个元素,这就是为什么总是 CV1 标题获得动画的原因。

这就是我如何获得动画 View :

private Bundle createSharedAnim() {
return ActivityOptionsCompat.makeSceneTransitionAnimation(this,
new Pair<>(findViewById(R.id.tv_filled_custom_card_value), VIEW_NAME_VALUE)).toBundle();
}

R.id.tv_filled_custom_card_value 是简历标题 ID。

如何获得正确的动画标题?

最佳答案

好的,我刚刚设法让它工作,而且非常简单......

由于我使用 onClickListener 来捕获点击,因此我的回调中已经有了点击的 View 。

所以我的新代码是:

private Bundle createSharedAnim(View view) {
return ActivityOptionsCompat.makeSceneTransitionAnimation(this,
new Pair<>(view.findViewById(R.id.tv_filled_custom_card_value), VIEW_NAME_VALUE)).toBundle();
}

现在我收到了单击的 View 作为参数,然后我在该 View 上调用 findViewById

关于java - 具有多个 id 的共享元素转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59867539/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com