支持库与设计库

时间:2016-01-17 12:07:19

标签: android navigation-drawer material-design android-support-library android-design-library

Support Library Features页所述; v4支持库通过添加DrawerLayout添加对导航抽屉的支持,设计支持库通过添加添加对导航抽屉的支持NavigationView {作为DrawerLayout的附加物,作为依赖项。)

有许多教程如何仅使用v4支持库创建导航抽屉,例如: Google page on Navigation Drawer

由于Design Support Library增加了对API级别7的支持,因此建议和首选的方法是创建导航抽屉。差异在哪里?有设计差异吗?

2 个答案:

答案 0 :(得分:1)

NavigationView代表您应用的标准导航菜单,它位于Material Guidelines之后。

NavigationView 通常放在 DrawerLayout内。

当然,您可以在DrawerLayout内使用自己喜欢的布局。

有关NavigationView here的更多信息。

答案 1 :(得分:1)

  

创建导航的推荐和首选方式是什么   抽屉。差异在哪里?有设计差异吗?

实际上,这些都没有任何重大差异。例如,As Google doc说:

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

  

例如,以下布局使用带有两个孩子的DrawerLayout   views:一个包含主要内容的FrameLayout (由一个填充   运行时的片段)和导航抽屉的 ListView

<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

这就是全部。