2015-02-10 47 views
7

Tôi đang cố gắng thay đổi màu văn bản trong hộp thoại, thông thường nhất là AlertDialog. Tôi đã thử tất cả các giải pháp tại các trang này:Thay đổi màu văn bản hộp thoại trên 5.0+

AlertDialog styling - how to change style (color) of title, message, etc

How can I change the color of AlertDialog title and the color of the line under it

How to change theme for AlertDialog

Hầu hết các giải pháp làm việc DƯỚI 5.0 nhưng ở trên nó, và họ dường như không có hiệu lực. Tôi nên thay đổi các thuộc tính khác nhau nào cho 5,0+?

Chủ đề mẹ của ứng dụng của tôi là "Theme.AppCompat.Light.NoActionBar"

Trả lời

31

Trong trường hợp của bạn, tôi nghĩ các chủ đề hộp thoại sẽ làm việc.

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.YourDialogStyle; 

Bạn có thể chỉ định chủ đề hội thoại giống như mã ở trên.

<style name="YourDialogStyle" parent="Theme.AppCompat.Light.Dialog"> 
    <item name="android:colorAccent">@color/primary</item> 
    <item name="android:textColor">@color/accent</item> 
    <item name="android:textColorPrimary">@color/primary_dark</item> 
</style> 

Đây là ví dụ về chủ đề cho Hộp thoại.

  • android: colorAccent sẽ ảnh hưởng đến màu văn bản của nút âm hoặc dương.
  • android: textColor sẽ ảnh hưởng đến màu văn bản tiêu đề của hộp thoại.
  • android: textColorPrimary sẽ ảnh hưởng đến màu tin nhắn của hộp thoại.

Tùy chọn khác là bạn có thể tạo bố cục tùy chỉnh của riêng mình cho hộp thoại.

Các vấn đề liên quan