2

「戻る」ナビゲーションと同じアニメーションを使用する「上」ナビゲーションを作成したいと考えています。アニメーションをオーバーライドするために使用overridePendingTransitionしていますが、戻るボタンがデフォルトで使用するアニメーション リソースがわかりません。誰か知っていますか?

例として、既定の ICS インストールでは、設定アプリはそのサブページからこれを行います。

4

2 に答える 2

4

finish()私は最終的にナビゲーションを呼び出すことになりました。そうすれば、アニメーションは同じで、前のアクティビティはその状態を失うことはありません。参考までに、コードは次のようになります。

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            finish();
            return true;
    }
    return false;
}

アプリの外部からアクティビティを開始できる場合は、上へのナビゲーションが期待どおりに動作するようにするために、追加のロジックが必要になる場合があることに注意してください。

于 2013-06-15T01:53:26.377 に答える
1

したがって、私があなたを正しく理解していれば、ビューの1つまたは戻るボタンの押下を無効にするために、「戻る」アニメーション(左にスライドアウト)をコピーしたいと考えています。resこれを行うには、という名前のフォルダーに新しいフォルダーを作成しますanim。フォルダー内にanim新しいAndroid XMLファイルを作成して呼び出しslide_out_left、次のコードを配置します。

<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="0" android:toXDelta="-50%p"
        android:duration="@android:integer/config_mediumAnimTime"/>
<alpha android:fromAlpha="1.0" android:toAlpha="0.0"
        android:duration="@android:integer/config_mediumAnimTime" />
</set>

ここで、別のAndroid XMLファイルを作成して呼び出しslide_in_right、次のコードを配置します。

<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="50%p" android:toXDelta="0"
        android:duration="@android:integer/config_mediumAnimTime"/>
<alpha android:fromAlpha="0.0" android:toAlpha="1.0"
        android:duration="@android:integer/config_mediumAnimTime" />
</set>

最後に、必要な場所でアニメーションを呼び出すことができます。たとえば、保留中の遷移をオーバーライドする場合:

MyActivity.this.overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
于 2013-06-01T23:28:07.660 に答える