Android AppCompact 幻灯片活动



我在安卓中设置了以下动画:

向右滑动

<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>
然后,我创建了一个基类

来实现动画,我的所有活动都扩展了这个基类,如下所示:

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) 启动一个新活动,并且如果我按回工具栏(旧操作栏),动画就可以工作。但是,如果按Android的后退按钮,则动画不会发生。我以这种方式使用工具栏:

// get the actionbar as Toolbar
Toolbar toolbar = (Toolbar) findViewById(R.id.signIn_toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
您需要

覆盖活动中的onBackPressed方法

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

好吧,操作栏中的"后退"按钮实际上是一个"向上"按钮。使用它可将你带到应用的导航层次结构的更高级别。实际的"后退"按钮会将您带到您上次所在的"位置"。

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

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

最新更新