Android AppCompact 幻灯片活动

Android AppCompact slide activities

我在 android 中设置了以下动画:

向右滑动

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromXDelta="100%p" android:toXDelta="0"
        android:duration="@android:integer/config_shortAnimTime"/>
</set>

向右滑出

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromXDelta="0" android:toXDelta="100%p"
        android:duration="@android:integer/config_shortAnimTime"/>
</set>

然后我创建了一个基础 class 来实现动画,我的所有活动都扩展了这个基础 class 如下:

public class BaseActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        slideInTransition();
    }

    protected void slideInTransition() {
        overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_right);
    }
}

因此,只要我使用 startActivity(intent) 开始新的 activity 并且如果我在工具栏(旧操作栏)上按回,动画就会工作。但是如果按下 android 的后退按钮,则动画不会发生。 我是这样使用工具栏的:

// get the actionbar as Toolbar
Toolbar toolbar = (Toolbar) findViewById(R.id.signIn_toolbar);
setSupportActionBar(toolbar);

getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);

您需要覆盖 Activity

中的 onBackPressed 方法
@Override
    public void onBackPressed() {
        finish();
        overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_right);
    }

嗯,ActionBar 中的 "back" 按钮实际上是一个 "Up" 按钮。使用它,您可以进入应用程序导航层次结构的更高级别。实际的 "back" 按钮会将您带到您所在的最后一个 'place'。

因此请记住,"up" 按钮将始终将您带到应用程序中的相同位置!而 "back" 按钮可能会在您每次按下时将您带到不同的地方,甚至是另一个应用程序。

在此处阅读有关此主题的更多信息以更好地理解它:http://developer.android.com/design/patterns/navigation.html