Android: кнопка «вверх» имеет ту же анимацию, что и кнопка «назад» - PullRequest
0 голосов
/ 25 апреля 2018

Я искал вокруг, и я не могу найти ответ на этот вопрос, который работает.

Я использую <meta-data android:name="android.support.PARENT_ACTIVITY" android:value=".HomeScreen" />, чтобы применить родительский экран.

Я использую xmls slide_in_left, slide_out_right и т. Д., И получил это в моем файле styles.xml:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:windowAnimationStyle">@style/CustomActivityAnimation</item>
</style>

<style name="CustomActivityAnimation" parent="@android:style/Animation.Activity">
    <item name="android:activityOpenEnterAnimation">@anim/slide_in_right</item>
    <item name="android:activityOpenExitAnimation">@anim/slide_out_left</item>
    <item name="android:activityCloseEnterAnimation">@anim/slide_in_left</item>
    <item name="android:activityCloseExitAnimation">@anim/slide_out_right</item>
</style>

Это прекрасно работает для всего, кроме кнопки «вверх» на панели действий, которая ведет себя так, как будто я двигаюсь вперед в иерархии, а не назад (выдвигается влево). Есть ли способ изменить это?

Спасибо!

1 Ответ

0 голосов
/ 23 июня 2018

Лучший способ найти это, переопределив действие, вызываемое кнопкой вверх, и заставить его работать как кнопку возврата.

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    switch (item.getItemId()) {
        case android.R.id.home:
            onBackPressed();
            return true;

        default:
            return super.onOptionsItemSelected(item);
    }
}

Этот код находится в дочернем действии, тот, что скнопка.

...