自定义AppCompat支持v7工具栏样式设置活动

时间:2016-09-01 22:57:47

标签: android themes toolbar android-appcompat preferenceactivity

我正在构建一个具有向后兼容性的应用程序,因此我必须使用首选项活动而不是首选项片段。一切都很好,但我正在努力解决一些主题问题。

我在SettingsActivity.Java中使用以下内容

//Create the settings toolbar LinearLayout root = (LinearLayout)findViewById(android.R.id.list).getParent().getParent().getParent(); Toolbar bar = (Toolbar) LayoutInflater.from(this).inflate(R.layout.settings_toolbar, root, false); bar.setTitleTextColor(getResources().getColor(R.color.textColorPrimary)); root.addView(bar, 0); // insert at top bar.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { finish(); } });

在我的设置活动中创建和显示自定义工具栏。然后我有一个settings_toolbar.xml:

<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar"
app:theme="@style/AppTheme.Dark"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:navigationIcon="?attr/homeAsUpIndicator"
app:title="@string/action_settings"
/>

和settings.xml文件:

    <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
    <PreferenceCategory
        android:title="@string/pref_cat_app"
        android:key="pref_key_storage_settings">
        <ListPreference
            android:title="@string/pref_default_title"
            android:summary="@string/pref_default_prompt"
            android:key="defaultProvider"
            android:defaultValue="1"
            android:entries="@array/providerNames"
            android:entryValues="@array/providerValues" />
    </PreferenceCategory>
</PreferenceScreen>

显示此...

Screenshot

问题是为什么箭头是黑色的?无论我如何改变主题,我似乎都无法改变它的颜色。我可以通过更改主要文本颜色来使所有条形文本和箭头变为白色,但我的应用程序背景为白色,因此选项文本也将是白色而不会显示。

0 个答案:

没有答案