升级到AppCompat v21后,工具栏和状态栏上的绘图错误

时间:2015-01-10 11:01:00

标签: android android-5.0-lollipop android-support-library android-appcompat android-toolbar

我已将我的应用升级到AppCompat v21,以获得Material Design的外观。我正在使用android.support.v7.widget.Toolbar widged而不是ActionBar。升级后,我在状态栏,工具栏和导航区域中遇到奇怪的绘图错误(参见屏幕截图)。其余的布局很好。

错误仅在某些活动启动后发生,并且实际上不可重现。运行在Android 5.0.1股票上的Nexus 5出现错误。

有没有人知道这种行为的可能原因?

状态栏&工具栏(蓝色是所需的@color/colorPrimary): Drawing error screenshot 1

内容看起来不错。

导航: Drawing error screenshot 2

我的布局很简单,所以我不认为这是行为的原因,不过这里的代码是:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toolbar"
android:layout_height="wrap_content"
android:layout_width="match_parent" />

    <ListView
        android:id="@+id/list"
        android:headerDividersEnabled="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

    </ListView>
</LinearLayout>

这是我的工具栏样式:

<style name="Theme.AppThemeBase.Toolbar.Dark" parent="Widget.AppCompat.Toolbar">
    <item name="android:background">@color/colorPrimary</item>
    <item name="android:navigationIcon">?attr/homeAsUpIndicator</item>
    <item name="navigationIcon">?attr/homeAsUpIndicator</item>
    <item name="android:elevation">0dp</item>
    <item name="elevation">0dp</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:minHeight">?attr/actionBarSize</item>
    <item name="popupTheme">@style/ThemeOverlay.AppCompat.Light</item>
    <item name="theme">@style/ThemeOverlay.AppCompat.Dark.ActionBar</item>
</style>

1 个答案:

答案 0 :(得分:1)

这是我的样式文件:

<style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light">
    <item name="windowActionBar">false</item>   
    <item name="colorPrimary">@color/bg_blue</item>
    <item name="colorPrimaryDark">@color/dark_grey</item>
</style>

以上你必须使用:

<item name="windowActionBar">false</item>

禁用默认操作栏!!!

还有工具栏小部件布局:

<android.support.v7.widget.Toolbar 
   xmlns:android="http://schemas.android.com/apk/res/android"

   android:id="@+id/toolbar"
   android:minHeight="?attr/actionBarSize"
   android:background="?attr/colorPrimary"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"

/>

和颜色文件:

<resources>
   <color name="bg_blue">#1277c4</color>
   <color name="dark_grey">#666666</color>
</resources>

希望得到这个帮助。