在带有标题的操作栏上创建导航抽屉

Posted

技术标签:

【中文标题】在带有标题的操作栏上创建导航抽屉【英文标题】:Creating a navigation drawer over action bar with header 【发布时间】:2015-09-08 23:51:59 【问题描述】:

我有一个翻译应用程序,可以帮助人们学习一门语言并玩游戏来检查他们的学习情况。该应用程序已经有一个导航抽屉,但它显示在带有项目的操作栏下方。

我想更改导航抽屉以使其显示在操作栏上。 非常希望导航抽屉有一个 google play store 样式的标题。

我尝试了很多解决方案,但我无法完成。下面是一些例子:

[1]android Navigation Drawer on top ActionBar 第一种和第二种解决方案已尝试。

[2]https://www.youtube.com/watch?v=HDYPgS0BM8c&feature=youtu.be 更改 styles.xml 后已停止,因为操作栏没有消失或出现错误。 - 有没有可能我也必须改变 color.xml

【问题讨论】:

查看Support design library中的导航视图 还有其他答案吗? :) 【参考方案1】:

我会使用新的工具栏而不是操作栏。查看本教程:http://www.android4devs.com/2014/12/how-to-make-material-design-navigation-drawer.html

重要的是您必须将工具栏放在 DrawerLayout 中,如下所示 (activity_main.xml):

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout

    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/DrawerLayout"
    android:layout_
    android:layout_
    android:elevation="7dp">

    <LinearLayout
        android:layout_
        android:layout_
        android:orientation="vertical">

        <include
            android:id="@+id/tool_bar"
            layout="@layout/tool_bar">
        </include>

        <TextView
            android:layout_
            android:layout_
            android:text="Hello World" />

    </LinearLayout>

    <android.support.v7.widget.RecyclerView
        android:id="@+id/RecyclerView"
        android:layout_
        android:layout_
        android:layout_gravity="left"

        android:background="#ffffff"
        android:scrollbars="vertical">

    </android.support.v7.widget.RecyclerView>

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

工具栏.xml:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_
    android:layout_
    android:background="@color/ColorPrimary"
    android:theme="@style/ThemeOverlay.AppCompat.Dark"
    android:elevation="4dp"
    android:paddingTop="@dimen/tool_bar_top_padding">
</android.support.v7.widget.Toolbar>

使用工具栏:

Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar);
setSupportActionBar(toolbar);

【讨论】:

我不太明白你的意思。请更清楚地解释如何更改我的应用程序。谢谢。 有一个新的、更灵活的组件,称为 Toolbar,它旨在取代 ActionBar,让你做你想做的事。它适用于 AppCompat 库。您可以在这里找到更多信息:android-developers.blogspot.com.es/2014/10/…

以上是关于在带有标题的操作栏上创建导航抽屉的主要内容,如果未能解决你的问题,请参考以下文章

Android:如何使用自定义布局创建导航抽屉

带有滑动抽屉的覆盖 ActionBar

如何创建带有导航抽屉和可调整大小内容的 Vuetify 容器?

原创+译文官方文档中声明的如何创建抽屉导航栏(Navigation Drawer)

带有自定义按钮的导航抽屉

带有嵌套片段的导航抽屉 (ViewPager)