Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 滑出动画无法在后退按钮上工作?_Android_Animation_Android Activity_Android Animation - Fatal编程技术网

Android 滑出动画无法在后退按钮上工作?

Android 滑出动画无法在后退按钮上工作?,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

    <?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%”
也没有任何明显的区别。