bagaimana saya bisa mengubah warna teks dari ActionBar? Saya telah mewarisi Tema Cahaya Holo, saya dapat mengubah latar belakang ActionBar tapi saya tidak tahu apa atribut untuk mengubah untuk mengubah warna teks.
Ok, saya bisa mengubah warna teks dengan atribut android: textColorPrimary tetapi juga mengubah warna teks dari menu dropdown yang ditampilkan ketika terjadi overflow pada tombol ActionBar. Adakah yang tahu bagaimana cara mengubah warna menu / Daftar dropdown itu?
Jawaban:
Ok, saya sudah menemukan cara yang lebih baik. Saya sekarang hanya dapat mengubah warna judul. Anda juga dapat mengubah subtitle.
Inilah styles.xml saya:
sumber
Widget.Holo.Light.ActionBar
untukMyTheme.ActionBarStyle
.Saya menemukan cara yang bekerja dengan baik dengan rasa
ActionBar
( Sherlock , Compat , dan Native ):Cukup gunakan html untuk mengatur judul, dan tentukan warna teks. Misalnya, untuk mengatur warna teks ActionBar menjadi merah, cukup lakukan ini:
Anda juga dapat menggunakan kode heks merah
#FF0000
bukan katared
. Jika Anda mengalami masalah dengan ini, lihat Android Html.fromHtml (String) tidak bekerja untuk <font color = '#'> text </ font> .Selain itu, jika Anda ingin menggunakan sumber daya warna, kode ini dapat digunakan untuk mendapatkan String HEX yang benar, dan menghapus alpha jika diperlukan ( tag font tidak mendukung alpha):
sumber
red
dengan" + color + "
.#FF0000
dengan"+color+"
.Saya memiliki masalah yang sama dengan Anda, ini adalah tema Holo.Light tapi saya ingin gaya warna ActionBar, jadi saya perlu mengubah warna teks juga dan juga Judul dan Menu. Jadi pada akhirnya saya pergi ke git hub dan melihat kode sumber sampai saya menemukan gaya yang benar:
jadi sekarang yang harus Anda lakukan adalah mengatur apa pun
@color/actionBarText
dan yang@drawable/actionbarbground
Anda inginkan!sumber
ID ActionBar tidak tersedia secara langsung, jadi Anda harus melakukan sedikit peretasan di sini.
sumber
NullPointerException
di baris iniactionBarTextView.setTextColor(Color.RED);
getIndentifier()
, Anda bisa melihatnya(TextView) findViewById(com.actionbarsherlock.R.id.abs__action_bar_title);
terlebih dahulu (pastikan untuk memeriksa apakah ini bukan nol).Toolbar toolbar = findViewById(R.id.toolbar);
di mana dalam file tata letak xml dikelilingi olehcom.google.android.material.appbar.AppBarLayout
elemen, lalutoolbar.setTitleTextColor( getResources().getColor( R.color.colorViolet ) );
Ini adalah topik lama tetapi bagi pembaca masa depan, menggunakan ToolBar membuat semuanya sangat mudah:
sumber
saya telah selesai dengan kode satu baris sederhana
sumber
Tambahkan ke akar bilah tindakan. Saya punya masalah ini.
actionMenuTextColor - mengubah warna teks untuk teks bilah tindakan, itu tidak pernah berfungsi ketika itu adalah bagian dari
Widget.Styled.ActionBar
, jadi saya harus menambahkannya ke root. 2 atribut lainnya mengubah judul dan subtitle dari bilah tindakan.sumber
Mengatur string HTML pada bilah tindakan tidak berfungsi pada tema Material di SDK v21 +
Jika Anda ingin mengubahnya, Anda harus mengatur warna teks utama di style.xml Anda
sumber
Cara paling mudah adalah dengan melakukan ini di styles.xml.
Template styles.xml Google saat ini menghasilkan yang berikut:
Jika Anda menambahkan satu baris lagi sebelum tag penutup, seperti yang ditunjukkan, itu akan mengubah warna teks menjadi seperti apa seharusnya dengan Dark ActionBar:
Jika Anda ingin menyesuaikan warna dengan sesuatu yang lain, Anda dapat menentukan warna Anda sendiri dalam colors.xml atau bahkan menggunakan warna bawaan dari Android menggunakan atribut android: textColorPrimary:
Catatan: Ini mengubah warna judul dan juga judul dari setiap MenuItems yang ditampilkan di ActionBar.
sumber
Jika Anda ingin mendesain subtitle juga maka cukup tambahkan ini dalam gaya kustom Anda.
Orang-orang yang mencari untuk mendapatkan hasil yang sama untuk
AppCompat
perpustakaan maka inilah yang saya gunakan:sumber
<item name="android:titleTextStyle">
dan<item name="titleTextStyle">
karena saya menggunakan pustaka dukungan appcompat.Menemukan cara untuk melakukannya dengan baik tanpa membuat tata letak Anda sendiri di API> = 21.
Ini hanya akan mewarnai teks dan mengontrol gambar di dalam bilah tindakan.
Semoga bermanfaat bagi seseorang.
sumber
Banyak jawaban sudah tidak digunakan lagi, jadi saya akan memperbarui utas dan menunjukkan cara mengubah warna teks dan warna latar belakang pada ActionBar (Toolbar) dan di menu pop up ActionBar.
Pendekatan terbaru di Android (per Mei 2018) dalam bekerja dengan Action bar (Toolbar) adalah dengan menggunakan Tema dengan NoActionBar dan menggunakan Toolbar sebagai gantinya.
jadi inilah yang Anda butuhkan:
Dalam Activity (yang meluas AppCompatActivity), nyatakan Toolbar:
Tambahkan Toolbar di tata letak xml Kegiatan. Di sini kita akan mengatur kebiasaan kita (tema yang ditimpa), perhatikan
android:theme="@style/ThemeOverlay.AppTheme.ActionBar"
danapp:popupTheme="@style/ThemeOverlay.AppTheme.PopupMenu"
, mereka akan melakukan trik.Di styles.xml Anda, Anda harus menimpa kedua gaya tersebut untuk menetapkan warna khusus:
Itu orang-orang
ps jika Anda bertanya kepada saya, saya akan mengatakan: YA, seluruh Tema ini berantakan sekali.
sumber
Ini adalah solusi yang saya gunakan setelah memeriksa semua jawaban
Ubah warna yang dibutuhkan itu akan berfungsi
sumber
Fungsi ini berfungsi dengan baik
kemudian untuk menggunakannya cukup beri makan bilah tindakan dan warna baru yaitu
sumber
Coba tambahkan ini di onCreate Aktivitas Anda. Bekerja di hampir setiap versi Android.
atau
sumber
Coba banyak metode, dalam versi API yang rendah, metode yang layak adalah
<item name="actionMenuTextColor">@color/your_color</item>
dan jangan gunakan namespace Android, semoga dapat membantu Andaps:
sumber
cukup letakkan ini dalam gaya thme Anda.
<item name="android:textColorPrimary">@color/yourcolor</item>
sumber
Solusi yang bagus adalah dengan menggunakan SpannableStringBuilder dan mengatur warnanya. Anda bahkan dapat menggunakan warna berbeda pada bagian string yang berbeda, menambahkan gambar dll.
Diuji dengan perpustakaan dukungan baru.
Lihat Android: Mewarnai bagian dari string menggunakan TextView.setText ()?
sumber
Ini bukan solusi yang disarankan karena saya akan menggunakan apis android di sini, tetapi karena aplikasi saya perlu mengubah tema secara dinamis pada kondisi xml tidak mungkin di sini, Jadi saya perlu melakukan ini. Tetapi solusi ini bekerja dengan sangat baik.
Larutan:--
sumber
Untuk Android 5 (lollipop) Anda harus menggunakan android: actionBarPopupTheme untuk mengatur textColor untuk menu overflow.
sumber
Cara paling sederhana adalah:
Tambahkan dua baris ini ke file styles.xml Anda
Ganti warnanya dengan warna Anda.
sumber
Anda dapat mengubah warna teks apa pun dengan menggunakan atribut html
<font>
langsung dixml
file. misalnya distrings.xml
:sumber