动作条微调器不匹配样式,黑暗的微调文本

时间:2013-09-21 07:55:20

标签: android android-actionbar android-spinner android-styles android-support-library

我目前正在使用android.support.v7包中包含的Action Bar来为我的应用添加Action Bar功能。我在添加导航微调器时遇到了问题。当应用程序在Honecomb之前的设备上运行时,微调器中的文本显得太暗而无法轻松读取,并且单选按钮与文本一起显示。我在我的values / styles.xml中定义的Honecomb之前的设备使用Theme.AppCompat主题,这是一个黑暗的主题,但不知何故主题未正确应用于Action Bar微调器。 这是微调器初始化的代码。

ActionBar actionBar = getSupportActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
actionBar.setDisplayShowTitleEnabled(false);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
    actionBar.getThemedContext(),
    android.R.layout.simple_spinner_dropdown_item,
    android.R.id.text1, stringArrayGoesHere());
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
actionBar.setListNavigationCallbacks(adapter, null);

我听说过Action Bar Sherlock等替代图书馆,但我现在对它们不感兴趣。

谢谢

1 个答案:

答案 0 :(得分:5)

我在使用客户主题时也遇到了同样的问题,解决方案是分别为微调文本和微调框下拉列表文本创建02 xml文件。我想你可以为你的情况做同样的事情。

这是针对微调文本:(我正在使用带有暗动作条的holo)

actionbar_spinner.xml

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="7dp"
android:textAppearance="@android:style/TextAppearance.DeviceDefault.Medium.Inverse"
android:textColor="#FFFFFF"
android:textStyle="italic" />

这是下拉列表文字:

actionbar_spinner_dropdown.xml

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center_vertical"
    android:height="40dp"    
    android:paddingLeft="7dp"
    android:textSize="18sp"
    android:textColor="#0099CC" />

然后你可以将这些xml放在你的代码中,例如:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(
    actionBar.getThemedContext(),
    R.layout.actionbar_spinner,
    android.R.id.text1, stringArrayGoesHere());
adapter.setDropDownViewResource(R.layout.actionbar_spinner_dropdown);
actionBar.setListNavigationCallbacks(adapter, null);

希望有所帮助......