Android AppCompat幻灯片活动

时间:2015-03-10 13:32:18

标签: android animation

我在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>

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

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);

2 个答案:

答案 0 :(得分:1)

您需要覆盖活动

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

答案 1 :(得分:1)

好吧,&#34;回来&#34; ActionBar中的按钮实际上是一个&#34; Up&#34;按钮。使用它,可以将您带到应用程序导航层次结构的更高级别。实际&#34;返回&#34;按钮会带你到最后一个地方&#39;你在。

所以请记住&#34; up&#34;按钮将始终带您到您的应用程序中的相同位置!虽然&#34;回来&#34;按钮可能会在您每按一次,甚至到另一个应用程序时将您带到不同的位置。

详细了解此主题,以便更好地了解它:http://developer.android.com/design/patterns/navigation.html

相关问题