Seçenek 1) Hızlı ve kolay yol (yalnızca Araç Çubuğu)
Appcompat-v7-r23'ten bu yana, aşağıdaki öznitelikleri doğrudan sizin Toolbar
veya stilinizde kullanabilirsiniz:
app:titleTextColor="@color/primary_text"
app:subtitleTextColor="@color/secondary_text"
Minimum SDK'nız 23 ise ve yerel kullanıyorsanız Toolbar
ad alanı önekini olarak değiştirin android
.
Java'da aşağıdaki yöntemleri kullanabilirsiniz:
toolbar.setTitleTextColor(Color.WHITE);
toolbar.setSubtitleTextColor(Color.WHITE);
Bu yöntemler bir renk kaynağı kimliği değil bir renk int alır!
Seçenek 2) Araç Çubuğu stilini ve tema niteliklerini geçersiz kılın
düzen / xxx.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"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:theme="@style/ThemeOverlay.MyApp.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
style="@style/Widget.MyApp.Toolbar.Solid"/>
değerler / styles.xml
<style name="Widget.MyApp.Toolbar.Solid" parent="Widget.AppCompat.ActionBar">
<item name="android:background">@color/actionbar_color</item>
<item name="android:elevation" tools:ignore="NewApi">4dp</item>
<item name="titleTextAppearance">...</item>
</style>
<style name="ThemeOverlay.MyApp.ActionBar" parent="ThemeOverlay.AppCompat.ActionBar">
<!-- Parent theme sets colorControlNormal to textColorPrimary. -->
<item name="android:textColorPrimary">@color/actionbar_title_text</item>
</style>
Yardım! Simgelerim de renk değiştirdi!
@PeterKnut, bunun taşma düğmesi, gezinme çekmecesi düğmesi ve geri düğmesinin rengini etkilediğini bildirdi. Ayrıca metin rengini de değiştirir SearchView
.
İkon renkleri ile ilgili: colorControlNormal
devralır dan
android:textColorPrimary
koyu temalar için (siyah üzerine beyaz)
android:textColorSecondary
hafif temalar için (beyaz üzerine siyah)
Bunu işlem çubuğunun temasına uygularsanız , simge rengini özelleştirebilirsiniz.
<item name="colorControlNormal">#de000000</item>
Appcompat-v7'den r23'e kadar bir hata vardı ve bu da yerel emsali şu şekilde geçersiz kılmanızı gerektirdi:
<item name="android:colorControlNormal" tools:ignore="NewApi">?colorControlNormal</item>
Yardım! SearchView bir karmaşa!
Not: Bu bölüm muhtemelen eski.
Herhangi bir nedenle appcompat-v7 ile birlikte verilenden farklı bir geri ok (görsel, teknik olarak değil) kullanan arama widget'ını kullandığınız için, bunu uygulamanın temasında manuel olarak ayarlamanız gerekir . Destek kitaplığının çekilebilir öğeleri doğru şekilde renklendirilir. Aksi takdirde her zaman beyaz olurdu.
<item name="homeAsUpIndicator">@drawable/abc_ic_ab_back_mtrl_am_alpha</item>
Arama görünümü metnine gelince ... kolay bir yol yok. Kaynağını araştırdıktan sonra metin görünümüne geçmenin bir yolunu buldum. Bunu test etmedim, bu yüzden işe yaramadıysa lütfen yorumlarda bana bildirin.
SearchView sv = ...; // get your search view instance in onCreateOptionsMenu
// prefix identifier with "android:" if you're using native SearchView
TextView tv = sv.findViewById(getResources().getIdentifier("id/search_src_text", null, null));
tv.setTextColor(Color.GREEN); // and of course specify your own color
Bonus: ActionBar stilini ve tema niteliklerini geçersiz kılın
Varsayılan bir eylem appcompat-v7 eylem çubuğu için uygun stil şu şekilde görünür:
<!-- ActionBar vs Toolbar. -->
<style name="Widget.MyApp.ActionBar.Solid" parent="Widget.AppCompat.ActionBar.Solid">
<item name="background">@color/actionbar_color</item> <!-- No prefix. -->
<item name="elevation">4dp</item> <!-- No prefix. -->
<item name="titleTextStyle">...</item> <!-- Style vs appearance. -->
</style>
<style name="Theme.MyApp" parent="Theme.AppCompat">
<item name="actionBarStyle">@style/Widget.MyApp.ActionBar.Solid</item>
<item name="actionBarTheme">@style/ThemeOverlay.MyApp.ActionBar</item>
<item name="actionBarPopupTheme">@style/ThemeOverlay.AppCompat.Light</item>
</style>