我正在开发一个聊天应用程序,发现在如何正确地对两个活动之间的过渡进行动画处理方面存在问题。我已经在谷歌上搜索了一段时间,并且也在SO上进行了搜索,但如果此问题已经有答案,请提前道歉。
我有一个 ChatMainActivity,它包含一个显示聊天列表的片段,以及一个 ChatContentFragmentActivity,它包含聊天消息的片段。如下所示,我在 AndroidManifest.xml 中将 ChatMainActivity 声明为 "singleTask" 启动模式。
这是我的动画.xml文件:
ChatContentFragmentActivity(聊天内容片段活动)
我现在遇到的问题是,
以前有一个SO问题,我现在找不到了,它建议说 singleTask 在这里是个问题,但我记得那个问题建议的解决方法对我没有帮助。
有人知道如何让我的
编辑:目前的情况如下:
我有一个 ChatMainActivity,它包含一个显示聊天列表的片段,以及一个 ChatContentFragmentActivity,它包含聊天消息的片段。如下所示,我在 AndroidManifest.xml 中将 ChatMainActivity 声明为 "singleTask" 启动模式。
<activity
android:name=".ui.activities.ChatMainActivity"
android:launchMode="singleTask"
android:theme="@style/AppTheme"
android:windowSoftInputMode="adjustResize" />
<activity
android:name=".ui.activities.ChatContentFragmentActivity"
android:parentActivityName=".ui.activities.ChatMainActivity"
android:theme="@style/AppTheme"
android:windowSoftInputMode="adjustResize" />
这是我的动画.xml文件:
chat_content_activity_enter_animation.xml
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="@integer/activity_animation_duration"
android:fromXDelta="100%"
android:interpolator="@android:anim/decelerate_interpolator"
android:toXDelta="0" />
</set>
chat_content_activity_exit_animation.xml
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="@integer/activity_animation_duration"
android:fromXDelta="0"
android:interpolator="@android:anim/decelerate_interpolator"
android:toXDelta="100%" />
</set>
chat_list_activity_enter_animation.xml
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="@integer/activity_animation_duration"
android:fromXDelta="-100%"
android:interpolator="@android:anim/decelerate_interpolator"
android:toXDelta="0" />
</set>
chat_list_activity_exit_animation.xml
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="@integer/activity_animation_duration"
android:fromXDelta="0"
android:interpolator="@android:anim/decelerate_interpolator"
android:toXDelta="-100%" />
</set>
以下是我使用它们的方法:
在ChatMainActivity
中包含聊天记录的RecyclerView
的Adapter
中使用它们。
Intent intent = new Intent(context, ChatContentFragmentActivity.class);
context.startActivity(intent);
activity.overridePendingTransition(R.anim.chat_content_activity_enter_animation, R.anim.chat_list_activity_exit_animation);
ChatContentFragmentActivity(聊天内容片段活动)
@Override
public void finish() {
super.finish();
overridePendingTransition(R.anim.chat_content_activity_exit_animation, R.anim.chat_list_activity_enter_animation);
}
我现在遇到的问题是,
ChatContentFragmentActivity
的进入和退出动画已经显示了,但是 ChatMainActivity
没有任何反应。以前有一个SO问题,我现在找不到了,它建议说 singleTask 在这里是个问题,但我记得那个问题建议的解决方法对我没有帮助。
有人知道如何让我的
ChatMainActivity
的退出和进入动画播放吗?编辑:目前的情况如下:
.gif
中看到的相同。 - HePa