ActivityOptionsCompat问题的活动转换

时间:2017-09-20 20:08:20

标签: android android-activity android-transitions

我目前正在开发一个新闻应用程序,为了增强应用程序,我想在我的RecyclerView元素和我的详细文章Activity之间添加转换。为了做到这一点,我将ActivityOptionsCompat(我的BaseActivity扩展AppCompatActivity - 我的app的minSdkVersion为17)添加为startActivity方法的包。

这就是我所做的:

List<Pair<View, String>> sharedElements = new ArrayList<>();

// I add multiple Pair to the list...

ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(
            activity,
            sharedElements.toArray(new Pair[sharedElements.size()])
);

activity.startActivity(intent, options.toBundle());

所以,我的测试设备是一个三星星系S4(5.1),一切都按预期工作,没问题。在发布之前,我尝试了三星Galaxy S8(7.0),这是我发现问题的时候。第一篇细节文章活动就像一个魅力,但当我尝试打开第二篇文章时,我遇到了崩溃:

java.lang.IllegalArgumentException
at android.os.Parcel.readException(Parcel.java:1697)
at android.os.Parcel.readException(Parcel.java:1646)
at android.app.ActivityManagerProxy.isTopOfTask(ActivityManagerNative.java:6651)
at android.app.Activity.isTopOfTask(Activity.java:6185)
at android.app.Activity.cancelInputsAndStartExitTransition(Activity.java:4445)
at android.app.Activity.startActivityForResult(Activity.java:4422)
at android.support.v4.app.BaseFragmentActivityApi16.startActivityForResult(BaseFragmentActivityApi16.java:54)
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:65)
at android.app.Activity.startActivity(Activity.java:4682)
at com.my.package.activities.detail.BaseDetailArticleActivity.startActivity(BaseDetailArticleActivity.java:119)
at com.my.package.activities.detail.BaseDetailArticleActivity.startActivity(BaseDetailArticleActivity.java:80)
at com.my.package.adapters.HomeAdapter$RubricHolder$1.onClick(HomeAdapter.java:335)
at android.view.View.performClick(View.java:6261)
at android.view.View$PerformClick.run(View.java:23748)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6776)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)

我看过这篇文章(IllegalArgumentException in ActivityManagerProxy),但我仍有同样的问题。 你也试过这个bug吗?如果是这样,你有没有设法解决它?

非常感谢,

NiCLO

0 个答案:

没有答案