「戻る」ナビゲーションと同じアニメーションを使用する「上」ナビゲーションを作成したいと考えています。アニメーションをオーバーライドするために使用overridePendingTransition
していますが、戻るボタンがデフォルトで使用するアニメーション リソースがわかりません。誰か知っていますか?
例として、既定の ICS インストールでは、設定アプリはそのサブページからこれを行います。
「戻る」ナビゲーションと同じアニメーションを使用する「上」ナビゲーションを作成したいと考えています。アニメーションをオーバーライドするために使用overridePendingTransition
していますが、戻るボタンがデフォルトで使用するアニメーション リソースがわかりません。誰か知っていますか?
例として、既定の ICS インストールでは、設定アプリはそのサブページからこれを行います。
finish()
私は最終的にナビゲーションを呼び出すことになりました。そうすれば、アニメーションは同じで、前のアクティビティはその状態を失うことはありません。参考までに、コードは次のようになります。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
finish();
return true;
}
return false;
}
アプリの外部からアクティビティを開始できる場合は、上へのナビゲーションが期待どおりに動作するようにするために、追加のロジックが必要になる場合があることに注意してください。
したがって、私があなたを正しく理解していれば、ビューの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);