Панель навигации под панелью инструментов

Я пытаюсь открыть ящик навигации под панелью инструментов.

        

Как переформатировать xml так, чтобы панель навигации открывалась под панелью инструментов?

Вы должны переместить 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 который имеет перечисленные выше изменения.

  • Панель c # для рисования графики и прокрутки
  • Добавление вертикальной полосы прокрутки в AlertDialog в Android?
  • Изменить размер для строки состояния вызова?
  • c: forEach внутри перьев (например, p: panelgrid) внутри ui: repeat
  • Контекстные стили Actionbar
  • Как установить текст панели инструментов и цвет стрелки назад
  • Изменение цвета фона отдельных элементов меню навигации
  • Чат клиента смайликов окно JAVA
  • Interesting Posts

    Канадский английский на продуктах Apple

    Значение файла .inl в C ++

    Как настроить DNS-серверы на Raspberry Pi?

    Отредактируйте как открывающий, так и закрывающий тег html

    Selenium WebDriver выбрасывает исключение в streamе «main» org.openqa.selenium.ElementNotInteractableException

    Настройка общей папки пакетов nuget для всех решений, когда некоторые проекты включены в несколько решений

    Попытка получить размер изображения в ImageView

    Как получить текст из n-й строки UILabel?

    Каков наилучший дизайн для таблицы базы данных, которая может принадлежать двум различным ресурсам и, следовательно, нуждается в двух разных внешних ключах?

    Я не вижу, что мой SSD в качестве загрузочного параметра в BIOS

    Автоматический запуск Notepad ++ macro

    Как получить имя переменной в виде строки?

    Оператор Dot в Haskell: нужно больше объяснений

    Когда Asp.Net удаляет устаревшие элементы кэша?

    Эстетически редактирование grub.cfg

    Давайте будем гением компьютера.