Как отключить анимацию слайдов на панели навигации при переходе в полноэкранный режим?

У меня есть активность, которая переходит на другую полноэкранную активность. Однако при переходе от этой активности к моей активности в полноэкранном режиме панель навигации скользит вниз, а не исчезает мгновенно. Я завысил полноэкранное окно во втором действии, но из-за медленной анимации скольжения он изменяется на 1 секунду позже, после того как анимация завершилась, а не сразу раздута до полноэкранного экрана. Поэтому мне нужно, чтобы анимация мгновенно исчезла. Я пробовал

<item name="android:windowAnimationStyle">@null</item>

и

overridePendingTransition(0, 0);

и

Transition fade = new Fade();
fade.excludeTarget(android.R.id.navigationBarBackground, true);
getWindow().setEnterTransition(fade);

не повезло.

На стороне Windows я пробовал

WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS 
WindowManager.LayoutParams.FLAG_FULLSCREEN 
WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN

Как скрыть навигационную панель: View.SYSTEM_UI_FLAG_HIDE_NAVIGATION

Ответы

Ответ 1

Я думаю, я прибил его:

введите описание изображения здесь

FullscreenActivity класс:

public class FullscreenActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        View decorView = getWindow().getDecorView();
        int uiOptions = View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
        decorView.setSystemUiVisibility(uiOptions);
        ActionBar actionBar = getSupportActionBar();
        if (actionBar != null) {
            actionBar.hide();
        }

        setContentView(R.layout.activity_fullscreen);
    }
}

манифеста:

    <activity
        android:name=".FullscreenActivity"
        android:configChanges="orientation|keyboardHidden|screenSize"
        android:label="@string/title_activity_fullscreen"
        android:theme="@style/FullscreenTheme"/>

Стили:

<style name="FullscreenTheme" parent="AppTheme">
    <item name="android:statusBarColor">@android:color/transparent</item>
    <item name="android:actionBarStyle">@style/FullscreenActionBarStyle</item>
    <item name="android:windowActionBarOverlay">true</item>
    <item name="android:windowBackground">@null</item>
    <item name="metaButtonBarStyle">?android:attr/buttonBarStyle</item>
    <item name="metaButtonBarButtonStyle">?android:attr/buttonBarButtonStyle</item>
</style>

NB! Настройка StatusBar требуется цвет API 21. Для более старых версий, чтобы "скрыть" StatusBar, вам нужно использовать:

        int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                | View.SYSTEM_UI_FLAG_FULLSCREEN;

как uiOptions в коде выше. (это приведет к довольно быстрому изменению размера).

Надеюсь, это поможет