1

Как указано на странице Support Library Features; v4 Поддержка Библиотека добавлена ​​поддержка Навигация Тумбы путем добавления DrawerLayout и Design Support Library добавлена ​​поддержка навигационных Тумбы путем добавления NavigationView (как дополнение к DrawerLayout, который он имеет, как зависимость).Навигационный ящик из библиотеки поддержки по сравнению с библиотекой дизайна

Существует множество учебных пособий по созданию навигационного ящика с использованием только библиотеки поддержки v4, например. Google page on Navigation Drawer.

Поскольку библиотека поддержки дизайна добавляет поддержку уровня API 7, рекомендуется и предпочтительный способ создания навигационного ящика. Где различия? Существуют ли различия в дизайне?

+0

Действительно хороший вопрос для новичков, кстати.:) – Mohsen

ответ

1

Какой рекомендуемый и предпочтительный способ создания навигации Ящик. Где различия? Существуют ли различия в дизайне?

На самом деле, те, которые не имеют какой-либо большой differences.for пример, Как Google док говорит:

http://developer.android.com/training/implementing-navigation/nav-drawer.html

Например, следующая раскладка использует DrawerLayout с два ребенка просмотров: a FrameLayout, чтобы содержать основное содержание (заполнено фрагментами во время выполнения) и Список Вид для выдвижного ящика навигации.

<android.support.v4.widget.DrawerLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/drawer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <!-- The main content view --> 
    <FrameLayout 
     android:id="@+id/content_frame" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 
    <!-- The navigation drawer --> 
    <ListView android:id="@+id/left_drawer" 
     android:layout_width="240dp" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" 
     android:choiceMode="singleChoice" 
     android:divider="@android:color/transparent" 
     android:dividerHeight="0dp" 
     android:background="#111"/> 
</android.support.v4.widget.DrawerLayout> 

Но в Support Library, вы можете добиться этого легко с NavigationView конечно с Стандартный материал конструкторским так:

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/drawer" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true"> 

    <!--Contents like Coordinator Layout--> 

    <android.support.design.widget.NavigationView 
     android:id="@+id/navigation_view" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" 
     app:headerLayout="@layout/header" 
     app:menu="@menu/drawer" /> 
    <!--Here is the Drawer menu--> 

</android.support.v4.widget.DrawerLayout> 

В этом случае мы использовали app:menu="@menu/drawer" с простой и простой способ достижения этого и в приведенных выше кодах, они использовали <ListView.

Это все.

+0

Итак, библиотека дизайна просто добавляет 'NavigationView' в качестве дополнительного элемента вместо' FrameLayout' и 'ListView'? Это все? –

+1

Добавляет 'NavigationView' вместо' ListView'.and вместо этого 'FrameLayout', вы можете использовать' CoordinatorLayout', что зависит от вашего ожидания (вы можете сделать это как 'MaterialDesign' Guideline) .Проверьте эти ссылки для библиотеки поддержки: http://android-developers.blogspot.com/2015/05/android-design-support-library.html – Mohsen

1

NavigationView представляет собой стандартное меню навигации для вашего приложения, и оно следует за Material Guidelines.

NavigationViewобычно находится внутри a DrawerLayout.

Конечно, вы можете использовать свой любимый макет внутри DrawerLayout.

Дополнительная информация о NavigationViewhere.

+2

Так что, если я следую Руководству по материалам, мне лучше с «NavigationView», поскольку он уже поддерживает его, но если я хочу что-то построить по-другому, я бы пошел с пользовательскими «FrameLayout» и «ListView» (я должен использовать 'DrawerLayout' в обоих направлениях). –

Смежные вопросы