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

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

        

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

  • Изменить размер для строки состояния вызова?
  • Не удается уловить событие нажатия кнопки кнопки панели инструментов
  • Избегайте панели в autoHide в расширении Firefox
  • Изменение цвета фона отдельных элементов меню навигации
  • Добавление вертикальной полосы прокрутки в AlertDialog в Android?
  • В каком порядке панели наиболее эффективны с точки зрения времени и производительности?
  • Как скрыть навигационную панель постоянно в андроид-активности?
  • Создание SearchView, который выглядит как руководство по разработке материалов
  • Давайте будем гением компьютера.