如何在工具栏中的AppCompatSpinner上更改文本颜色?

Bav*_*ilo 4 android toolbar spinner android-appcompat

我最近更新到API 24,现在我在工具栏内的AppCompatSpinner上遇到了文本颜色问题.

这就是我所说的,请注意顶部的"Pils"是如何黑色的.Pre API 24这是白色的.(此外,在不在API 24上的设备上运行此APP,文本显示为白色应该.)

在此输入图像描述

这是我的build.gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 24
    buildToolsVersion '24.0.0'

    defaultConfig {
        applicationId 'com.baviloworks.braumeister'
        minSdkVersion 17
        targetSdkVersion 24
        versionCode 100
        versionName '1.0.0'
    }

    buildTypes {
        release {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:24.0.0'
    compile 'com.android.support:support-v4:24.0.0'
    compile 'com.android.support:design:24.0.0'
    compile 'com.android.support:cardview-v7:24.0.0'
    compile 'com.github.PhilJay:MPAndroidChart:v2.2.3'
}
Run Code Online (Sandbox Code Playgroud)

这是我的style.xml:

    <?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="windowActionBar">false</item>
        <item name="android:windowDrawsSystemBarBackgrounds">true</item>
        <item name="colorPrimaryDark">@color/DarkBlue</item>
        <item name="colorAccent">@color/Green</item>
    </style>

    <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />

    <style name="customTabText" parent="TextAppearance.Design.Tab">
        <item name="android:textSize">13sp</item>
    </style>
</resources>
Run Code Online (Sandbox Code Playgroud)

这是我的工具栏的XML:

<android.support.v7.widget.Toolbar
            android:id="@+id/Toolbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/Blue"
            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light">

    <android.support.v7.widget.AppCompatSpinner
        android:id="@+id/Recipe_Selection_Spinner"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:visibility="gone"
        android:popupBackground="@drawable/spinner_rounded_corners"
        android:minWidth="175dp"/>
</android.support.v7.widget.Toolbar>
Run Code Online (Sandbox Code Playgroud)

如果有人能指出我正确的方向,那就太好了!

谢谢 :)

我现在试过这个:

cursorAdapter = new SimpleCursorAdapter(getActivity().getApplicationContext(), R.layout.custom_spinner, dbData, recipeNames, recipeTo, 0);
cursorAdapter.setDropDownViewResource(R.layout.spinner_dropdown_item);
recipeLoadSelection.setAdapter(cursorAdapter);
Run Code Online (Sandbox Code Playgroud)

这是自定义微调器:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"        
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textColor="#ffffff" />
Run Code Online (Sandbox Code Playgroud)

但现在文本根本不会出现

Eug*_*nec 8

a)无论你做什么,都不要使用应用程序上下文来夸大视图.如果您正在使用SimpleCursorAdapter它,则使用构造函数中的上下文在内部对视图进行膨胀.

b)使用工具栏的主题上下文来显示其中的小部件.您的工具栏会覆盖android:theme属性.您将希望使用此上下文来扩充该工具栏中的任何视图.

意思是代替getActivity().getApplicationContext()getSupportActionBar().getThemedContext(),它会起作用.这是正确的方法,它不硬编码文本颜色.