Android 从 child 到 parent 的自定义过渡 Activity

Android custom transition from child to parent Activity

我有 2 个 ActivitiesActivityAActivityBparent Activity:

我的 Manifest 文件:

<activity
        android:name=".ActivityA"
        android:launchMode="singleTop" />
    <activity
        android:name=".ActivityB"
        android:parentActivityName=".ActivityA"/>

我已将过渡从 ActivityA 更改为 ActivityB:

    final Intent intent = new Intent(this, ActivityB.class);
    startActivity(intent);
    overridePendingTransition(R.anim.push_left_in, R.anim.push_left_out);

效果很好。但现在我还想更改从 ActivityB 返回到 ActivityA 时的过渡。在我的 ActivityB 中,我像这样重写方法 finish()

@Override
public void finish() {
    super.finish();
    overridePendingTransition(R.anim.push_right_in, R.anim.push_right_out);
}

问题是 finish() 方法只在按下硬件返回 Button 时被调用,而不是在 "go back arrow" (屏幕左上角)被按下时调用.

我还想要在按下 Button 时自定义 transition

有什么想法吗?

您可以通过以下方式完成:

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case android.R.id.home:
                  finish();
                  overridePendingTransition(R.anim.push_right_in, R.anim.push_right_out);

        }
        return super.onOptionsItemSelected(item);
    }