【发布时间】:2016-03-21 17:05:08
【问题描述】:
当一个`RecyclerView 项目点击启动一个详细活动时,我有一个共享元素转换,但项目点击的涟漪效应永远不可见
使用共享元素转换启动 Activity
Intent intent = IntentUtils.createDetailsIntent(InspectionListFragment.this.getContext(), record);
Bundle options = ActivityOptionsCompat.makeSceneTransitionAnimation(getActivity(),
view, getString(R.string.transition_element)).toBundle();
getActivity().startActivity(intent, options);
我注意到这条日志消息
D/OpenGLRenderer: endAllStagingAnimators on 0x95e86600 (RippleDrawable) with handle 0xaa6c2760
如果我删除过渡,波纹会起作用(而且我看不到此消息)。
使用 Handler 延迟 Activity 启动
如果我使用带有postDelayed 的 Handler 来启动 Activity,结果是喜忧参半。我看到了涟漪,但过渡并不顺利:
handler.postDelayed(new Runnable() {
@Override
public void run() {
Intent intent = IntentUtils.createDetailsIntent(InspectionListFragment.this.getContext(), record);
Bundle options = ActivityOptionsCompat.makeSceneTransitionAnimation(getActivity(),
view, getString(R.string.transition_element)).toBundle();
getActivity().startActivity(intent, options);
}
}, 200);
使用列表视图
请注意,使用具有相同项目布局的 ListView 和 makeSceneTransitionAnimation 可以正常工作。不幸的是,这不合适。
项目布局
<LinearLayout
android:background="?android:attr/selectableItemBackground"
android:clickable="true"
android:focusable="true"
【问题讨论】:
-
遇到同样的问题
-
我还没有找到更好的解决方案。我有兴趣了解为什么
ListView和RecyclerView之间存在如此大的差异。
标签: android android-recyclerview android-transitions