我有ActivityGroup
意图开发tabHost
。其中一个选项卡包含两个活动。问题是当我在这两个活动之间移动时,它们之间没有滑动。旧活动消失,新的活动自动显示在屏幕上。
我需要实现的是 - 当我从activity2移回活动1时,activity2必须通过向右滑动离开屏幕,新活动(活动1)必须通过滑动进入屏幕从左到右。
当使用intent在活动之间移动时,效果类似于android默认样式!
到目前为止我所取得的成就是:
当我尝试从活动2移动到活动1:活动2(旧的)从屏幕消失时,屏幕变黑并且新活动通过从左向右滑动进入屏幕。如果我设法通过滑动使旧活动离开屏幕,那将是很棒的。
这是我从旧活动回到新活动的代码:
Animation animation = null;
Window oldWindow = manager.getCurrentActivity().getWindow();
if(oldWindow != null)
{
animation = AnimationUtils.loadAnimation(this, R.anim.right_to_left);
View v =oldWindow.getDecorView();
v.startAnimation(animation);
}
manager.destroyActivity(mIdList.get(index), true);
mIdList.remove(index); index--;
String lastId = mIdList.get(index);
lastIntent = manager.getActivity(lastId).getIntent();
newView = manager.startActivity(lastId, lastIntent).getDecorView();
newView.startAnimation(AnimationUtils.loadAnimation(this, R.anim.left_to_right));
if(newView != null)
{
setContentView(newView);
}
One big bug is this: if I remove this line from my code: `setContentView(newView)` I get the desired effect for the old activity. Meaning the old activity leaves the screen by sliding, but the new one never comes in.
如果我把那条线放回来,那么旧的活动就没有任何滑动,只是消失了!!
我使用三星Galaxy进行测试,我尝试使用overridePendingTransition
,但它对动画没有任何影响。
以下是我的xml
文件:
right_to_left.xml
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="true">
<translate
android:fromXDelta="0%" android:toXDelta="100%"
android:fromYDelta="0%" android:toYDelta="0%"
android:duration="3500" />
</set>
left_to_right.xml
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="true">
<translate android:fromXDelta="-100%" android:toXDelta="0%"
android:fromYDelta="0%" android:toYDelta="0%"
android:duration="3500"/>
</set>
谢谢。希望你能帮帮我。
答案 0 :(得分:1)
您可以使用tabs with ViewPager实现此目的。
同时查看this project。你会找到你需要的东西以及更多。
答案 1 :(得分:0)
使用ViewAnimator类
这将允许您自由制作动画