工具栏在Android 6.0 Marshmallow中变为白色(未应用样式/颜色)

时间:2016-03-31 10:41:31

标签: android android-support-library android-toolbar android-6.0-marshmallow

当我们开始在Android 6.0设备上测试我们的应用时,工具栏(支持操作栏)为白色。它没有使用我们在styles.xml中指定的颜色。这适用于所有预棉花糖设备。谁知道为什么会这样?我无法在谷歌上找到任何相关信息。

一些代码:

MainActivity.java

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
}
}

activity_main.xml中

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.swekjaks.actionbartest.MainActivity">
<include android:id="@+id/toolbar"
         layout="@layout/tool_bar" />

</RelativeLayout>

tool_bar.xml

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
                               android:layout_width="match_parent"
                               android:layout_height="wrap_content"
                               android:background="@color/PrimaryColor"
                               android:foreground="@color/white"
                               android:theme="@style/ThemeOverlay.AppCompat.Dark">

</android.support.v7.widget.Toolbar>

styles.xml

<resources xmlns:tools="http://schemas.android.com/tools">

<!-- Base application theme. -->
<style name="AppTheme" parent="@style/Theme.AppCompat.Light.NoActionBar">
    <item name="android:actionBarStyle" tools:targetApi="11">@style/RelacomActionBar</item>

    <!-- Support library compatibility -->
    <item name="actionBarStyle">@style/RelacomActionBar</item>

    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

<!-- ActionBar styles -->
<style name="RelacomActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
    <item name="android:background">@color/colorPrimary</item>

    <!-- Support library compatibility -->
    <item name="background">@color/colorPrimary</item>
</style>

</resources>

2 个答案:

答案 0 :(得分:0)

将自定义stylescolors复制到styles.xml (v21)也可以正常使用。

enter image description here

styles.xml (v21)的路径是:

\app\src\main\res\values-v21\styles.xml

答案 1 :(得分:0)

我认为它是设计库中的一个错误。 我使用的是库23.3.0。并且仍然会发生错误。 解决方法是添加几乎没有空间且可以隐藏的View。请参阅下面的结构。

<android.support.v4.widget.NestedScrollView
    app:layout_behavior="@string/appbar_scrolling_view_behavior">

</android.support.v4.widget.NestedScrollView>

<android.support.design.widget.AppBarLayout>

    <android.support.v7.widget.Toolbar
        app:layout_scrollFlags="scroll|enterAlways" />

    <android.support.design.widget.TabLayout
        app:layout_scrollFlags="scroll|enterAlways" />

    <View
        android:layout_width="match_parent"
        android:layout_height=".3dp"
        android:visibility="visible"/>

</android.support.design.widget.AppBarLayout>

这对我有用。让人们知道它是否适合你。 有关详细信息,请参阅https://code.google.com/p/android/issues/detail?id=178037