2010-08-17 35 views
9

Tôi đang tạo một AlertDialog. Tôi đang sử dụng setView() để đặt chế độ xem tùy chỉnh. Điều này cho phép chủ đề 'tối' trên hộp thoại (nền màu xám và cần văn bản màu trắng).Chủ đề ánh sáng cho AlertDialog?

Có cách nào để đặt hộp thoại sử dụng chủ đề 'ánh sáng' không? Nó trông đẹp hơn (nền trắng, văn bản tối).

Cảm ơn

+1

Xem câu trả lời này: http://stackoverflow.com/questions/2422562/how-to-change-theme-for-alertdialog – Joe

Trả lời

4

bước tôi mất:

  • Tạo một lớp mở rộng Dialog.
  • Trong onCreate, hãy gọi setContentView (x, y) với x là R.layout và y là R.style.popupStyle (xem bên dưới).
  • Trong res/values ​​/ style.xml, bạn cần ghi đè kiểu mặc định DialogWindow. Tôi đã thử chỉ tạo kiểu có cái này là cấp độ gốc, nhưng vẫn không được xóa tất cả các giá trị mặc định. Vì vậy, tôi đã kiểm tra cây git Android và có phong cách mặc định là và chỉ cần sao chép. Đây là một

:

<style name="Theme.Dialog"> 
    <item name="android:windowFrame">@null</item> 
    <item name="android:windowTitleStyle">@android:style/DialogWindowTitle</item> 
    <item name="android:windowBackground">@android:drawable/panel_background</item> 
    <item name="android:windowIsFloating">true</item> 
    <item name="android:windowContentOverlay">@null</item> 
    <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item> 
    <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item> 
</style> 

Bạn sẽ nhận được một vài lỗi, chỉ cần giải quyết chúng bằng cách sao chép thứ hơn từ styles.xml Android chính thức và themes.xml tập tin.

để tham khảo: styles.xmlthemes.xml.

+0

DialogWindowTitle không công khai, nên sử dụng:? Android: attr/windowTitleStyle –

+0

Điều này để lại đường viền màu trắng xung quanh hộp thoại thực tế, cho đến nay tôi không tìm thấy cách nào để xóa đường viền trong suốt nên bóng của hộp thoại thực sự được hiển thị trên nền thực và không phải trên đường viền màu trắng – John

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