首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >onBackPressed()动画问题

onBackPressed()动画问题
EN

Stack Overflow用户
提问于 2015-12-24 19:35:11
回答 4查看 529关注 0票数 0

我试图重写onBackPressed()方法来设置我自己的动画,但实际发生的是它从我的活动滑到相同的活动,然后显示新的活动。

下面是我的代码:

代码语言:javascript
复制
@Override
public void onBackPressed()
{
    super.onBackPressed();
    overridePendingTransition(R.anim.slide_out_right, R.anim.slide_in_left);
}

下面是动画:

向右滑出:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<translate android:duration="400" android:fromXDelta="0%" android:toXDelta="100%" />
<alpha android:duration="400" android:fromAlpha="1.0" android:toAlpha="0.0" />
</set>

左侧幻灯片:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator= "false" >
<translate android:duration = "400" android:fromXDelta = "-100%" android:toXDelta = "0%" />
<alpha android:duration = "400" android:fromAlpha = "0.0" android:toAlpha = "1.0" />
</set>

谢谢你们的帮助。

EN

回答 4

Stack Overflow用户

发布于 2015-12-24 19:41:25

super.onBackPressed();删除此行,然后工作

这是translate slide_in_from_left

代码语言:javascript
复制
   <set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<translate
    android:duration="500"
    android:fromXDelta="-300%"
    android:fromYDelta="0%"
    android:toXDelta="0%"
    android:toYDelta="0%" />
  </set>

slide_in_from_right

代码语言:javascript
复制
 <set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<translate
    android:duration="500"
    android:fromXDelta="300%"
    android:fromYDelta="0%"
    android:toXDelta="0%"
    android:toYDelta="0%" />
  </set>

slide_out_to_left

代码语言:javascript
复制
 <set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<translate
    android:duration="500"
    android:fromXDelta="0%"
    android:fromYDelta="0%"
    android:toXDelta="-300%"
    android:toYDelta="0%" />
  </set>

slide_out_to_right

代码语言:javascript
复制
 <set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<translate
    android:duration="500"
    android:fromXDelta="0%"
    android:fromYDelta="0%"
    android:toXDelta="300%"
    android:toYDelta="0%" />
  </set>

/

代码语言:javascript
复制
@Override
public void onBackPressed()
{

    overridePendingTransition(R.anim.slide_out_right, R.anim.slide_in_left);
   // add which work after you back.
}

并添加你正在工作的功能,按back。

票数 1
EN

Stack Overflow用户

发布于 2015-12-24 19:57:40

以下是你可以尝试解决的方法:

代码语言:javascript
复制
@Override
public void onBackPressed()
{
    finish();
    overridePendingTransition(R.anim.slide_out_right, R.anim.slide_in_left);


}
票数 0
EN

Stack Overflow用户

发布于 2015-12-24 20:02:38

编辑:这是来自Android Developers Blog - Back and other hard keys: three stories的答案

如果你要调查安卓平台上的基础应用程序,你会注意到一个相当常见的模式:添加一点魔法来拦截BACK键,并做一些不同的事情。要做到这一点,魔术需要看起来像这样:

@Override public boolean onKeyDown(int keyCode,KeyEvent onKeyDown){ if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { //在后面做一些事情。return true;} return super.onKeyDown(keyCode,event);}

如何截取活动中的BACK键也是我们看到开发人员问的常见问题之一,因此从2.0开始,我们有了一个新的小API来使这一点更简单,更容易发现和正确:

@Override public void onBackPressed() { //在后面做点什么。返回;}

如果这就是您所关心的全部,并且您并不担心支持2.0之前的平台版本,那么您可以停在这里。否则,请继续阅读。

因此,您的代码应该如下所示

代码语言:javascript
复制
@Override
public void onBackPressed()
{

   overridePendingTransition(R.anim.slide_out_right, R.anim.slide_in_left);
   finish();
}

代码语言:javascript
复制
 @Override
    public boolean onKeyDown(int keyCode, KeyEvent event)  {
        if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
            overridePendingTransition(R.anim.slide_out_right, R.anim.slide_in_left);
            finish();
            return true;
        }

        return super.onKeyDown(keyCode, event);
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34452179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档