牛轧糖状态栏上的导航抽屉?
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() ...);
【讨论】:
以上是关于牛轧糖状态栏上的导航抽屉?的主要内容,如果未能解决你的问题,请参考以下文章
原创+译文官方文档中声明的如何创建抽屉导航栏(Navigation Drawer)