Скрытие панели навигации Android и перекрытие полезного экрана

Моя проблема связана с размером используемого экрана. Мое приложение работает нормально, но я предполагаю, что если я изменю размер экрана (например, galaxy s8+), оно упадет.

вот как работает нормально

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

а это неправильный

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

проблема, связанная с NavigationBar. Я попытался установить параметры MACHPARENT и обычно программно использую DisplayMetrics metrics = this.getResources().getDisplayMetrics(); ширина = metrics.widthPixels; высота = metrics.heightPixels - Utils.getStatusBarHeight(getContext()); этот код. Но это не работает в Galaxy s8+, когда я скрываю панель навигации. Кто-нибудь может мне помочь, каков мой фолд?

редактировать. Я имею в виду, что высота моего экрана не работает.


person HasanT    schedule 20.08.2017    source источник
comment
вы когда-нибудь находили ответ на этот вопрос? Я сталкиваюсь с той же проблемой. Навигационная панель S8 искажает измерения моего приложения. Пользовательский интерфейс больше не выглядит правильно.   -  person portfoliobuilder    schedule 27.09.2017
comment
пожалуйста, напишите здесь, если вы нашли какое-либо решение этой проблемы   -  person div    schedule 25.05.2018


Ответы (1)


У меня была такая же проблема, и я мог решить ее с помощью decorview:

    //Get the correct screen size even if the device has a hideable navigation bar (e.g. the Samsung Galaxy S8)
    View decorView = getWindow().getDecorView(); //if you use this in a fragment, use getActivity before getWindow()
    Rect r = new Rect();
    decorView.getWindowVisibleDisplayFrame(r);
    int screenHeight = r.bottom; // =2220 on S8 with hidden NavBar and =2076 with enabled NavBar
    int screenWidth = r.right; // =1080 on S8
person Chris    schedule 19.06.2018