Как получить прозрачную строку состояния в виде карты? - PullRequest
0 голосов
/ 28 июня 2019

Смотрите (извините, SOF не позволяет мне загружать изображения)

Это то, чего я пытаюсь достичь. У меня есть вид карты, и я хочу, чтобы строка состояния была прозрачной, чтобы карты выглядели так, как будто они находятся под текстом строки состояния (как в приложении Uber). Я использую

 getWindow().setFlags(
    WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
    WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS
    /*,WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS*/);

этот тег для этого. Но проблема в том, что у меня также есть 4 кнопки (например, нижняя панель навигации) внизу. Когда я использую этот тег, эти кнопки попадают за панель навигации (программные клавиши).

Я думаю, что если я буду использовать 2 разных макета, это будет работать, как один макет для телефонов с NavBar, и один для телефонов с аппаратными клавишами. Но я просто не знаю как. Я пытался использовать эту функцию, но она либо не работает, либо я неправильно ее использую, пожалуйста, помогите.

public boolean hasNavBar (Resources resources) {
        int id = resources.getIdentifier("config_showNavigationBar", "bool", "android");
        return f= id > 0 && resources.getBoolean(id);
    }

И затем, используя if (f == true), иначе изменить макет и java-файлы, но это всегда дает false.

1 Ответ

0 голосов
/ 29 июня 2019

Попробуйте это вместо LAYOUT_NO_LIMITS:

Window w = getWindow();
w.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
w.setStatusBarColor(0x00000000);

Вам также необходимо убедиться, что для android:fitsSystemWindows установлено значение false, если вы хотите находиться за строкой состояния.Мне пришлось попробовать несколько разных версий этих флагов раскладки, и это то, что сработало для меня.

Вам не понадобятся разные раскладки для телефонов без кнопок навигации, раскладка заполнит экран либо допрограммная навигационная панель, или, если у телефона ее нет, до самого конца.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...