Android 滑出动画无法在后退按钮上工作?
我在进入或退出活动时使用动画,进入活动动画效果良好,但退出动画效果不佳。当我按下“后退”按钮时,我开始退出动画。发生的情况是,首先开始输入当前活动的动画,然后在按下“后退”按钮时显示我想要的最后一个活动一个简单的退出动画 滑出.xmlAndroid 滑出动画无法在后退按钮上工作?,android,animation,android-activity,android-animation,Android,Animation,Android Activity,Android Animation,我在进入或退出活动时使用动画,进入活动动画效果良好,但退出动画效果不佳。当我按下“后退”按钮时,我开始退出动画。发生的情况是,首先开始输入当前活动的动画,然后在按下“后退”按钮时显示我想要的最后一个活动一个简单的退出动画 滑出.xml <?xml version="1.0" encoding="utf-8"?> <translate xmlns:android="http://schemas.android.com/apk/res/android" androi
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_longAnimTime"
android:fromXDelta="0%p"
android:toXDelta="-100%p" >
</translate>
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_longAnimTime"
android:fromXDelta="0%"
android:toXDelta="0%" >
</translate>
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_longAnimTime"
android:fromXDelta="-100%"
android:toXDelta="0%" >
</translate>
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_longAnimTime"
android:fromXDelta="0%"
android:toXDelta="100%" >
</translate>
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_longAnimTime"
android:fromXDelta="0%"
android:toXDelta="-100%" >
</translate>
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_longAnimTime"
android:fromXDelta="-100%"
android:toXDelta="0%" >
</translate>
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_longAnimTime"
android:fromXDelta="0%"
android:toXDelta="100%" >
</translate>
在
on backpressed
中添加动画,单击后退按钮时将显示动画
@Override
public void onBackPressed() {
super.onBackPressed();
overridePendingTransition(R.anim.slide_in, R.anim.slide_out);
}
我做了类似的事情,效果很好,您可以使用startAnimation(您的xml)更改animate(),还必须使活动背景透明:
<item name="android:windowBackground">@android:color/transparent</item>
首先在动画文件夹中再创建一个动画,即nothing.xml nothing.xml
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_longAnimTime"
android:fromXDelta="0%p"
android:toXDelta="-100%p" >
</translate>
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_longAnimTime"
android:fromXDelta="0%"
android:toXDelta="0%" >
</translate>
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_longAnimTime"
android:fromXDelta="-100%"
android:toXDelta="0%" >
</translate>
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_longAnimTime"
android:fromXDelta="0%"
android:toXDelta="100%" >
</translate>
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_longAnimTime"
android:fromXDelta="0%"
android:toXDelta="-100%" >
</translate>
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_longAnimTime"
android:fromXDelta="-100%"
android:toXDelta="0%" >
</translate>
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_longAnimTime"
android:fromXDelta="0%"
android:toXDelta="100%" >
</translate>
然后在你的背部按钮上单击“执行此操作”
finish();
overridePendingTransition(R.anim.nothing, R.anim.slide_out);
我曾经
slide_in.xml
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_longAnimTime"
android:fromXDelta="100%p"
android:toXDelta="0%p" >
</translate>
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_longAnimTime"
android:fromXDelta="100%"
android:toXDelta="0%" >
</translate>
以前的
finish();
overridePendingTransition(R.anim.slide_enter, R.anim.slide_exit);
对于活动,输入animation使用
overridePendingTransition(R.anim.slide\u out,R.anim.slide\u in)代码>在onCreate(…)
函数中
对于退出动画,将相同的调用放入暂停(…)
我的操作栏上有一个返回/主页按钮,该按钮没有通过覆盖onBackPressed
或finish
来拾取幻灯片动画。所以我不得不从中添加这个片段。如果使用相同的slide\u输入
和slide\u退出
,如上所述:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
switch(id) {
// back button
case android.R.id.home:
finish();
overridePendingTransition(R.anim.slide_enter, R.anim.slide_exit);
return true;
}
return super.onOptionsItemSelected(item);
}
以防有人发现它有用。我通过重写后退按钮行为解决了这个问题
@Override
public boolean onOptionsItemSelected(MenuItem item) {
finish();
return true;
}
我正在使用操作栏上的后退按钮。对不起,我已经显示了代码。用intent来调用finish来代替finish怎么样。Intent Intent=新的Intent(此,PreviousActivity.class);intent.addFlags(intent.FLAG\u ACTIVITY\u CLEAR\u TOP);星触觉(意向);但这将扼杀我以前的活动&所有数据都将丢失。哥们,你能不能用onBackPressed()函数检查一下,像这样调用。案例R.id.home:onBackPressed();返回true;我不知道它是否会起作用,这只是猜测。我想要的是什么?上一个活动应该从左侧开始。我正在使用操作栏的“后退”按钮,因此请告诉解决方法。假设您现在有一个活动a,您希望活动B从何处开始,以及活动B将如何退出。请解释一点,以便我可以帮助我想从B开始输入动画。我能做到。但是我想从B转到上一个活动(A),退出动画像从左到右。我怎么做?所以你需要活动B从左滑到你的活动A上,然后按上一个按钮,你想活动B滑到你的活动A将保持不变的右侧?是的,这就是我想要检查我的答案,然后如何将A活动移入。当B退出时,但你说你希望ActivityA保持原样??对不起,我的要求有变化。lol只需将R.anim.nothing更改为R.anim.slide_在你的后退按钮上按,请将我更新的代码标记为正确答案,以便它可以帮助其他人。感谢先生的时间和帮助。复制回答你自己问题的人的答案这个问题很可笑。我甚至不知道你是怎么得到这么多选票的。这个答案是正确的。但是
slide_out.xml
似乎无关紧要。使用android:fromXDelta=“0%”android:toXDelta=“0%”
也没有任何明显的区别。