【问题标题】:Android : Toolbar status bar overlappingAndroid:工具栏状态栏重叠
【发布时间】:2015-05-02 16:36:05
【问题描述】:

我正在创建一个带有半透明状态栏的棒棒糖工具栏的应用程序,以使状态栏也被着色。它与 真正的财产。

只是现在工具栏和状态栏重叠了,看起来很乱。在保持窗口半透明状态的情况下,将工具栏放置在状态栏下方的选项是什么?

代码片段:

<style name="Theme.XXX" parent="Theme.AppCompat">
      <item name="colorPrimary">...</item>
      <item name="colorPrimaryDark">...</item>
      <item name="android:windowTranslucentStatus">true</item>
      <item name="windowActionBar">false</item>
      <item name="colorAccent">...</item>
   </style>

活动中使用的工具栏代码:

<android.support.v7.widget.Toolbar
        android:id="@+id/main_toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/XXX"
        android:elevation="5dp"
        android:minHeight="?attr/actionBarSize"
        android:theme="@style/Theme.XXX" />

提前致谢。

【问题讨论】:

标签: android android-5.0-lollipop android-4.4-kitkat


【解决方案1】:

正如Virus所说,答案在这里:Toolbar overlapping below status bar

只需添加属性

android:fitsSystemWindows="true"

进入xml项目,它会正常工作:)

【讨论】:

  • 我不建议这样做,因为吐司有一些副作用,而且状态栏实际上会选择灰色,我猜如果开发人员有颜色的话,他们不希望这样已经。好好看看这个read
  • 如果我有 xaml 页面,我必须设置什么参数?
【解决方案2】:

我猜你正在使用fitSystemWindows 属性。

关闭它。

【讨论】:

  • 谢谢,但这似乎没有帮助。我在主题中有以下设置........truefalse......
【解决方案3】:

可能是你的主题有这个

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

评论一下

【讨论】:

    【解决方案4】:

    为了保持半透明状态,你需要有

    <item name="android:windowTranslucentStatus">true</item>
    

    只要把下面的设为假

    <item name="android:windowDrawsSystemBarBackgrounds">false</item>
    

    在你的父布局中

    android:fitsSystemWindows="true"
    

    【讨论】:

      【解决方案5】:

      只需将其添加到 v21/styles.xml 文件中

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

      【讨论】:

        【解决方案6】:

        只需从所有可以找到它的 xml 中删除标记。适合SystemWindows
        或者设置为 false。

        【讨论】:

        • 对不起,你的意思是什么。