Как программно сделать панель инструментов прозрачной при использовании DrawerLayout и Fragments

Мой вопрос: как сделать панель действий прозрачной (а также строку состояния)?

У меня возникли проблемы с использованием AppBarLayout и панелей инструментов на Android для достижения этой цели.

Мне это нужно, потому что я хочу создать приложение с одним основным действием, которое содержит DrawerLayout и множество экранов, которые в основном являются фрагментами. Затем есть несколько экранов, где ActionBar и StatusBar становятся прозрачными (при этом все еще есть кнопка гамбургера для DrawerLayout).

Я пытался изменить AppBarLayout и панель инструментов, но это выглядит странно... Похоже, что на панели действий есть какие-то странные поля.

appBarLayout.setBackgroundColor(ContextCompat.getColor(this, android.R.color.transparent));
toolbar.setBackgroundColor(ContextCompat.getColor(this, android.R.color.transparent));

И вот результат:

Результат

А вот это перед изменением цвета/изменением его обратно:

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

Любые идеи о том, как добиться прозрачности панели действий, когда некоторые фрагменты прикреплены к основному содержимому основного действия?

Если вы хотите взглянуть на код, вот репозиторий: Sample Repo.


person Daivid    schedule 13.11.2015    source источник


Ответы (1)


Хорошо...

тут я ошибся...

Во-первых, все, что вам нужно сделать, это удалить отступы в content_main.xml и установить высоту appBarLayout на 0, и код заработает. (Вам нужно будет вернуть исходное значение, если вам нужны тени).

Я обновил репо, чтобы исправить это, и теперь он должен работать.

Но есть еще один способ решить эту проблему, используя фрагмент с собственным AppBarLayout/Toolbar и скрывая и показывая AppBarLayout MainActivity, когда вы показываете внутренний фрагмент.

Я создам ветку в том же репозитории, чтобы показать, что я имею в виду.

Пожалуйста, ответьте/комментируйте с лучшими решениями/идеями, если они есть.

Репозиторий здесь.

person Daivid    schedule 16.11.2015
comment
Я сделал решение с несколькими панелями инструментов в указанной ветке, и оно работает. Пожалуйста, дайте мне знать, если у вас есть лучшие (более элегантные) решения. - person Daivid; 17.11.2015