牛轧糖状态栏上的导航抽屉?

Posted

技术标签:

【中文标题】牛轧糖状态栏上的导航抽屉?【英文标题】:Navigation Drawer Over Status Bar In Nougat? 【发布时间】:2017-05-28 08:23:23 【问题描述】:

我尝试在我的应用程序中构建导航抽屉,导航抽屉在以前版本的牛轧糖中工作正常,但在牛轧糖导航抽屉中没有出现在状态栏上。我尝试了很多解决方案,但在牛轧糖中不起作用,请帮忙!!

这是我的 activity_main.xml 文件:

 <android.support.v4.widget.DrawerLayout 
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/drawerLayoutId"
        android:layout_
        android:layout_>
    
        <RelativeLayout
        android:fitsSystemWindows="true"    
        android:id="@+id/activity_main"
        android:layout_
        android:layout_
    
        tools:context="com.example.pushpam.helloworld.MainActivity">
    
        <include
            layout="@layout/custom_tool_bar"
            android:id="@+id/customtollbarimportid"/>
    
        <TextView
            android:textSize="80dp"
            android:textColor="#E9CC0014"
            android:text="I"
            android:layout_
            android:layout_
            android:layout_below="@+id/customtollbarimportid"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_marginLeft="65dp"
            android:layout_marginStart="65dp"
            android:layout_marginTop="79dp"
            android:id="@+id/textView" />
    
        <TextView
    
            android:textSize="80dp"
            android:textColor="#E9CC0014"
            android:text="Love"
            android:layout_
            android:layout_
            android:id="@+id/textView2"
            android:layout_centerVertical="true"
            android:layout_centerHorizontal="true" />
    
        </RelativeLayout>
    
    <fragment
        android:fitsSystemWindows="true"
        android:id="@+id/nav_drawer_fragment_id"
        android:layout_
        android:layout_
        app:layout="@layout/fragment_navigationfragment"
        android:layout_gravity="start"
        android:name="com.example.pushpam.helloworld.navigationfragment"
        tools:layout="@layout/fragment_navigationfragment" />
        
    </android.support.v4.widget.DrawerLayout>

我的样式.xml:

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>

</style>

<style name="CustomToolBarTheme">

    <item name="android:textColorPrimary">@color/toolBarTextColor</item>
    <item name="android:textColorSecondary">@color/toolBarTextColor</item>
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>

和样式(v21).xml

<resources>

    <style name="CustomToolBarTheme">
        <item name="android:textColorPrimary">@color/toolBarTextColor</item>
        <item name="android:textColorSecondary">@color/toolBarTextColor</item>
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
        <item name="android:windowDrawsSystemBarBackgrounds">true</item>
        <item name="android:statusBarColor">@android:color/transparent</item>
        <item name="android:windowTranslucentStatus">true</item>
    </style>
</resources>

这是我想要在状态栏上的当前导航抽屉。

【问题讨论】:

张贴您的状态图片 @Charuka 请看 您是否为状态栏添加了颜色?我猜抽屉在后面 我对类似用例的回答***.com/a/59405510/9079028 【参考方案1】:

您有一个彩色状态栏。所以导航抽屉在它后面是不可见的。让你的状态栏透明,然后它就会在那里。

http://blog.raffaeu.com/archive/2015/04/11/android-and-the-transparent-status-bar/

<!-- Make the status bar traslucent -->
<style name="AppTheme" parent="AppTheme.Base">
    <item name="android:windowTranslucentStatus">true</item> // add this item tag inside your Theme Styles.xml and Styles(v21).xml:
</style>

【讨论】:

添加windowTranslucentStatus后注意改变 @xyz rety 你在哪里添加的?您需要将它添加到正确的主题上,这是您可以在清单中找到的应用程序主题,也在 Styles(v21).xml 中,不要复制孔块只获取标签并将其包含在您的正确主题中正在使用 我只在 Styles(v21).xml 中添加了项目 我的应用程序最低目标版本是 15,所以我无法在我的 styles.xml 中添加 windowTranslucentStatus 这就是为什么我只在我的 .Styles(v21).xml 中添加 windowTranslucentStatus @xyz rety 您的问题是 android N not 15 ,添加该行,然后它会显示一条红线,您可以忽略它,不会造成任何伤害,但它只会在 v.19 和你说你以前的版本很好【参考方案2】:

这对我有用: https://***.com/a/35362693/8331109

你在这里覆盖

mDrawer.addDrawerListener(new DrawerLayout.DrawerListener() ...);

【讨论】:

以上是关于牛轧糖状态栏上的导航抽屉?的主要内容,如果未能解决你的问题,请参考以下文章

状态栏和导航栏上的 Google Now 渐变/阴影

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

删除导航栏上的空间

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

Android - 为带有导航抽屉和应用栏的应用完全隐藏状态和导航栏

Android Kitkat 4.4版本状态栏下使用导航抽屉时状态栏颜色显示为白色不透明