我尝试了许多不同的变体,但无法使返回过渡正常工作。
当我退出活动 B 时,图像会转换回活动 A,但它会缩放直到消失,然后在消失后显示应有的位置。
我尝试了以下内容和该组中其他内容的不同变体
Activity A 来自 recyclerview 中的点击侦听器。
Intent intent = new Intent(getActivity(), ApplyActivity.class);
ActivityOptionsCompat transitionActivityOptions;
transitionActivityOptions = ActivityOptionsCompat.makeSceneTransitionAnimation(getActivity(), imageView, getString(R.string.transition_image_details));
intent.putExtra(ApplyActivity.EXTRA_NAME, selected_launcher);
intent.putExtra(ApplyActivity.EXTRA_INSTALLED, mLaunchers.get(position).getInstalled());
getActivity().startActivity(intent, transitionActivityOptions.toBundle());
Run Code Online (Sandbox Code Playgroud)
活动A布局
<ImageView
android:id="@+id/launcher_icon"
android:transitionName="@string/transition_image_details"
android:layout_width="72dp"
android:layout_height="72dp"
android:layout_centerHorizontal="true"
android:padding="@dimen/small_padding"
android:layout_alignParentTop="true" />
Run Code Online (Sandbox Code Playgroud)
活动B
Transition transition = TransitionInflater.from(this).inflateTransition(R.transition.change_image_transform);
getWindow().setSharedElementReturnTransition(transition);
getWindow().setSharedElementEnterTransition(transition);
getWindow().setSharedElementExitTransition(transition);
Run Code Online (Sandbox Code Playgroud)
我尝试过以下 true/false getWindow().setSharedElementsUseOverlay(true);
Activity B 布局(在 AppBarLayout/CollapsingToolbarLayout 内)
<ImageView
android:id="@+id/backdrop"
android:transitionName="@string/transition_image_details"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="80dp"
android:paddingTop="30dp"
app:layout_collapseMode="parallax"
app:layout_collapseParallaxMultiplier="0.7" />
Run Code Online (Sandbox Code Playgroud)
更改图像变换.xml
<?xml version="1.0" encoding="utf-8"?>
<transitionSet xmlns:android="http://schemas.android.com/apk/res/android">
<changeTransform />
<changeImageTransform />
</transitionSet>
Run Code Online (Sandbox Code Playgroud)
我也尝试在 value-v21/styles.xml 中设置转换,但没有成功。 …
我在这里遵循这个示例并将其集成到我当前正在开发的应用程序中。我以前有 sql 数据库,但我不想迁移它们。
我已经设置了库和所有代码,但是当我尝试构建以在模拟器上进行测试时,我收到此错误。
Error:(27, 60) error: constructor RoomOpenHelper in class RoomOpenHelper cannot be applied to given types;
required: DatabaseConfiguration,Delegate,String,String
found: DatabaseConfiguration,<anonymous Delegate>,String
reason: actual and formal argument lists differ in length
Run Code Online (Sandbox Code Playgroud)
看来“RoomOpenHelper”需要一个identityHash 和legacyHash。未提供遗产,我不明白为什么。
这是我正在使用的库
implementation "android.arch.lifecycle:runtime:1.1.0"
implementation "android.arch.lifecycle:extensions:1.1.0"
annotationProcessor "android.arch.lifecycle:compiler:1.1.0"
implementation "android.arch.persistence.room:runtime:1.0.0"
annotationProcessor "android.arch.persistence.room:compiler:1.0.0"
compile "android.arch.persistence.room:rxjava2:1.1.0-alpha1"
implementation "android.arch.lifecycle:common-java8:1.1.0"
Run Code Online (Sandbox Code Playgroud)
我尝试过使用和不使用通用 java8 库。