Vì vậy, tôi đã bắt đầu sử dụng Snackbar mới trong Thư viện hỗ trợ thiết kế, nhưng tôi thấy rằng khi bạn xác định "android: textColor" trong chủ đề của mình, nó sẽ áp dụng cho màu văn bản của thanh snack. Đây rõ ràng là một vấn đề nếu màu văn bản chính của bạn tối.
Có ai biết cách giải quyết vấn đề này hoặc có lời khuyên cho cách tôi nên tô màu văn bản của mình không?
CHỈNH SỬA tháng 1 năm 2017: (Trả lời sau)
Mặc dù có một số giải pháp tùy chỉnh để khắc phục sự cố bên dưới, nhưng có lẽ bạn nên cung cấp cách chính xác để tạo chủ đề Snackbars.
Thứ nhất, bạn có thể không nên xác định android:textColor
chủ đề của mình (trừ khi bạn thực sự biết phạm vi của những gì đang sử dụng chủ đề). Điều này đặt màu văn bản về cơ bản của mọi chế độ xem kết nối với chủ đề của bạn. Nếu bạn muốn xác định màu văn bản trong các chế độ xem không phải là màu mặc định, thì hãy sử dụng android:primaryTextColor
và tham chiếu thuộc tính đó trong các chế độ xem tùy chỉnh của bạn.
Tuy nhiên, để áp dụng chủ đề Snackbar
, vui lòng tham khảo hướng dẫn chất lượng này từ tài liệu tài liệu của bên thứ ba: http://www.materialdoc.com/snackbar/ (Thực hiện theo cách triển khai chủ đề có lập trình để không dựa vào kiểu xml)
Để tham khảo:
// 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);
(Bạn cũng có thể tạo Snackbar
bố cục tùy chỉnh của riêng mình , hãy xem liên kết ở trên. Làm như vậy nếu phương pháp này cảm thấy quá khó và bạn muốn một cách chắc chắn đáng tin cậy để có Snackbar tùy chỉnh của mình tồn tại thông qua các bản cập nhật thư viện hỗ trợ có thể có).
Và cách khác, hãy xem các câu trả lời bên dưới để biết các câu trả lời tương tự và có lẽ nhanh hơn để giải quyết vấn đề của bạn.
android:textColorPrimary