Jadi saya sudah mulai menggunakan Snackbar baru di Design Support Library, tetapi saya menemukan bahwa saat Anda mendefinisikan "android: textColor" di tema Anda, ini berlaku untuk warna teks snackbar. Ini jelas menjadi masalah jika warna teks utama Anda gelap.
Adakah yang tahu cara mengatasi ini atau memiliki saran tentang bagaimana saya harus mewarnai teks saya?
EDIT Januari 2017: (Pasca-Jawaban)
Meskipun ada beberapa solusi khusus untuk memperbaiki masalah di bawah ini, sebaiknya berikan cara yang benar untuk tema Snackbars.
Pertama, Anda mungkin tidak harus mendefinisikan android:textColor
tema Anda sama sekali (kecuali Anda benar-benar tahu ruang lingkup apa yang menggunakan tema). Ini mengatur warna teks pada dasarnya setiap tampilan yang terhubung ke tema Anda. Jika Anda ingin menentukan warna teks dalam tampilan Anda yang bukan default, gunakan android:primaryTextColor
dan rujuk atribut itu dalam tampilan kustom Anda.
Namun, untuk menerapkan tema ke Snackbar
, lihat panduan kualitas ini dari dokumen materi pihak ketiga: http://www.materialdoc.com/snackbar/ (Ikuti implementasi tema terprogram agar tidak bergantung pada gaya xml)
Sebagai referensi:
// create instance
Snackbar snackbar = Snackbar.make(view, text, duration);
// set action button color
snackbar.setActionTextColor(getResources().getColor(R.color.indigo));
// get snackbar view
View snackbarView = snackbar.getView();
// change snackbar text color
int snackbarTextId = android.support.design.R.id.snackbar_text;
TextView textView = (TextView)snackbarView.findViewById(snackbarTextId);
textView.setTextColor(getResources().getColor(R.color.indigo));
// change snackbar background
snackbarView.setBackgroundColor(Color.MAGENTA);
(Anda juga dapat membuat Snackbar
layout kustom Anda sendiri juga, lihat link di atas. Lakukan jika metode ini terasa terlalu hacky dan Anda ingin cara yang pasti dapat diandalkan agar Snackbar kustom Anda bertahan melalui kemungkinan update support library).
Dan sebagai alternatif, lihat jawaban di bawah untuk jawaban yang serupa dan mungkin lebih cepat untuk menyelesaikan masalah Anda.
android:textColorPrimary