Панель навигации под панелью инструментов
Я пытаюсь открыть ящик навигации под панелью инструментов.
Как переформатировать xml так, чтобы панель навигации открывалась под панелью инструментов?
- как удалить тень под панелью действий с помощью AppCompat.Light.NoActionBar?
- Как исправить метод getActionBar может вызвать java.lang.NullPointerException
- Контекстные стили Actionbar
- Панель не получает фокус
- Как установить текст панели инструментов и цвет стрелки назад
- Цвет выбранной вкладки в нижней навигации
- Чат клиента смайликов окно JAVA
- Как скрыть строку состояния iOS
- Android: как заголовок центра в ToolBar
- c: forEach внутри перьев (например, p: panelgrid) внутри ui: repeat
- Панель c # для рисования графики и прокрутки
- Как оживить Burger в Arrow с помощью Appcompat v7 21, панели инструментов и DrawerLayout
- self.title устанавливает заголовок navigationController и tabBarItem? Зачем?
Вы должны переместить DrawerLayout
качестве верхнего родителя и переместить Toolbar
из DrawerLayout
содержимого DrawerLayout
. Короче говоря, это выглядит так:
RelativeLayout ----Toolbar ----DrawerLayout ---ContentView ---DrawerList
Однако в руководстве по дизайну материалов указано, что навигационный ящик должен находиться над Toolbar
.
Вы просто должны добавить
android:layout_marginTop="@dimen/abc_action_bar_default_height_material"
к вашему макету, который вы используете в качестве ящика.
Это автоматически отрегулирует навигационный ящик под панелью инструментов, а также поддерживает различные размеры экрана.
Вы можете добавить layout_marginTop
как это,
но ящик появится как верхний слой на панели инструментов.
Вот еще один Choppy способ добавить его ниже на панель инструментов !!!
возможно, не лучший, но он работает!
конечный результат будет выглядеть следующим образом:
Если вы создаете проект в качестве проекта Navigation Drawer Activity
), он предоставит вам четыре файла XML при создании в папке layout
- app_bar_main
- content_main
- navigatin_main
-
activity_main
как эти xmls связаны? в основном я вижу include tag
используется
Ваша активность связана с activity_main
-
app_bar_main
имеетapp_bar_main
иnavigation_view
(ящик) -
app_bar_main
имеетtoolbar
иcontent_main
по умолчанию
теперь позволяет удалить activity_main
и установить его содержимое непосредственно на панель приложения main и использовать его в качестве основного макета для Activity.
Чтобы добавить ящик под панель инструментов, добавьте его под android.support.design.widget.AppBarLayout
потому что он содержит панель инструментов, и она должна быть сверху.
вот пример app_bar_main.XML
//------ taken from activity_main // content main // you need this padding
ps вы можете установить app_bar_main.XML, чтобы setContentView вашей активности просто поиграл, есть много способов;)
это мои макеты и отлично работают: activity_main:
app_bar_main.xml:
результат: панель инструментов Bellow
Если вы используете настраиваемую панель инструментов, тогда используйте макет ящика таким образом.
....
и если вы не используете настраиваемую панель инструментов, вам нужно установить край верхнего края на макет ящика.
android:layout_marginTop ="?android:attr/actionBarSize"
Решение Easy и Good установлено fitsSystemWindows=false
для
android.support.v4.widget.DrawerLayout
который имеет id как
android:id="@+id/drawer_layout"
И для navigationView
установите layout_marginTop
как ?attr/actionBarSize
, который получит размер панели действий и задает ее как margin
Вот полный код activity_main.xml
который имеет перечисленные выше изменения.