如何为每个片段实现带有透明状态栏和单独工具栏的导航抽屉?

时间:2018-06-29 11:44:15

标签: android android-fragments navigation-drawer android-toolbar android-statusbar

我正在尝试实现带有透明状态栏的导航抽屉。第二个要求是每个片段都有单独的工具栏。第三,此实现的结果在v19和v21 +设备上看起来相同。 我已经创建了一个示例应用程序来演示我在这方面遇到的问题,可以从this投递箱链接下载该应用程序,以查看完整的代码。对于此实现,我在网上进行了一些研究后,从cheesesquare示例应用程序获得了一些修改,并获得了帮助。

以下是问题:

V19:

1)尽管我在activity_main.xml的DrawerLayout中使用了android:fitsSystemWindows="true",但工具栏的一部分仍隐藏在每个片段的状态栏后面: v19 toolbar behind status bar

2)状态栏不是透明的(如上图所示),尽管我在v19 \ styles.xml中使用了<item name="android:windowTranslucentStatus">true</item>

3)导航抽屉未在状态栏后面绘制: v19 with open drawer

V21 +:

1)尽管我在v21 \ styles.xml中使用了以下内容,但状态栏不是透明的。它是我尚未定义的灰色:

<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:statusBarColor">@android:color/transparent</item>

v21 non-transparent status bar

但是,导航抽屉是在状态栏的正后方绘制的: v21 with open drawer

因此,最后,我无法在两个设备上获得相同的外观,也无法在任一设备上获得透明状态,导航抽屉也没有在状态栏后面绘制。

请仔细看一下,并提出解决该烦人问题的建议。我已经阅读了很多材料,包括有关SO的问题,但无法解决此问题。最后,我尝试遵循上面提到的cheesesquare示例,但是仍然没有得到想要的结果。是的,我的示例和Cheesesquare之间唯一的主要区别是它只创建了一个工具栏,而在主要活动中也是如此。

任何帮助都将是一个很大的帮助!

1 个答案:

答案 0 :(得分:0)

从这里您可以转到导航抽屉活动。由Android Studio提供。

右键单击您的软件包名称。 选择导航抽屉活动选项。 (如下图所示)

Create Navigation Drawer Activity

为活动命名。

Give Name to an Activity

将创建您的导航抽屉。