Когда я впервые начал изучать этот вопрос, я нашел вопрос this, но ответ не сработал для меня. Я работаю по телефону KitKat, но из того, что я прочитал, это можно сделать на версиях с предварительным леденец, используя библиотеку AppCompat
. Я использую this GitHub repo, и более конкретно this образец кода для создания экрана вложенных предпочтений.Tint CheckBox и панель инструментов с разными цветами в зависимости от предпочтений.
Вот мой AppTheme.SettingsTheme
для SettingActivity
в образце коды:
<style name="AppTheme.SettingsTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="titleTextStyle">@android:color/white</item>
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="colorControlNormal">#fff</item>
</style>
Этой линия: <item name="colorControlNormal">#fff</item>
изменяет Toolbar
от наличия белого текста и черного назад стрелка, к тому, как текст и назад стрелка появляется белый (что хорошо).
Вопрос заключается в том, что у меня есть CheckBoxPreference
, который окрашено с этой линии также, поэтому, когда он в не проверял, я едва могу видеть его (коробка цвет белый ).
Я попытался создать специальную тему только для панели инструментов (опять-таки из this ответа) и делает <item name="colorControlNormal">COLOR</item>
, но его просто не влияет на панель инструментов.
Я также попытался подкрасить только CheckBoxPreference
, но, похоже, что вовлекает в себя создание пользовательского макета для этого, и это приносит гораздо больше работы.
Вот мой макет панели инструментов, в настоящее время без какой-либо конкретной темы:
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.AppBarLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:context=".ui.activities.settingsActivity.SettingsActivity">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="?colorPrimary"
android:minHeight="?actionBarSize"
app:navigationContentDescription="@string/abc_action_bar_up_description"
app:navigationIcon="?homeAsUpIndicator"
app:title="@string/activity_settings_title"
app:titleTextColor="@android:color/white" />
</android.support.design.widget.AppBarLayout>
Может кто-нибудь объяснить, как подкрасить CheckBoxPreference
и Toolbar
seperatly? Мне все равно, какой из них я использую, используя ActivityTheme
, и какой из них я накладываю на свой пользовательский номер theme
. Ответы, которые я нашел, не сработали.
спасибо за ваш ответ. можете ли вы привести пример того, как точно для темы только панель инструментов имеет белый цвет текста и обратной стрелки, а тема активности не затрагивается? Я попытался скопировать код, который вы предоставили, он сделал текст моей панели инструментов и обратную стрелку черным –
@OfekAgmon Это код, который я использую в своей сборке. Стиль 'ThemeOverlay.AppCompat.Dark.ActionBar' должен сделать текст и значки белыми в' AppBarLayout' и 'Toolbar'. Вы уверены, что правильно применили тему? – Bryan
Да, я скопировал именно так, как есть.если ThemeOverlay.AppCompat.Dark.ActionBar должен сделать панель инструментов и значки белыми, что такое ThemeOverlay.AppCompat.Light? во всяком случае, его все еще черный в моем приложении. –