2013-07-27 25 views
5

vì vậy tôi có một ứng dụng là Holo Light với Dark Actionbar và bất cứ khi nào tôi sao chép và dán nội dung nào đó vào EditText, các biểu tượng màu trắng để bạn không thể nhìn thấy chúng. Ảnh chụp màn hình nằm bên dưới. Có cách nào để khắc phục điều này không? Cảm ơn! A screenshot of the bugHolo Light với Dark Actionbar hiển thị các biểu tượng sao chép và dán Holo tối

+0

Bạn có chắc chắn rằng bạn sử dụng bối cảnh hoạt động? Sử dụng bối cảnh ứng dụng một cách tình cờ có thể có các hiệu ứng như vậy vì ngữ cảnh ứng dụng không sử dụng/biết về chủ đề. – zapl

+0

Tôi nên sử dụng ngữ cảnh hoạt động ở đâu trong bối cảnh ứng dụng? Xin lỗi tôi hơi bối rối. – ollien

+0

Nếu bạn sử dụng ngữ cảnh ứng dụng trong khi xây dựng ui (ngầm định hoặc sử dụng rõ ràng 'LayoutInflater',' Tài nguyên', ...), bạn sẽ nhận được một chủ đề bị hỏng. Nếu bạn sử dụng ngữ cảnh hoạt động ('this' bên trong' Activity'/'.getActivity()' bên trong 'Fragment') mọi thứ sẽ ổn. Nó chỉ là một đoán rằng bạn có thể được sử dụng bối cảnh sai. – zapl

Trả lời

3

Bạn phải đặt lại chủ đề theo cách thủ công trong phương thức onCreateDialog. Đó là một lỗi trong khuôn khổ nhưng workaround này hoạt động cho thời gian được:

https://stackoverflow.com/a/19746561/1508506

0

Tôi gặp sự cố này với chủ đề Theme.AppCompat.Light.DarkActionBar và tôi nghĩ đó là lỗi. Tôi cố gắng để thay đổi hình nền trong phong cách của tôi với những điều sau đây (bạn có thể lấy drawables từ http://jgilfelt.github.io/android-actionbarstylegenerator/):

<!-- styles.xml --> 
<style name="Theme.MyThemeLightBase" parent="@style/Theme.AppCompat.Light.DarkActionBar"> 
    <item name="actionModeBackground">@drawable/cab_background_top</item> 
    <item name="android:actionModeBackground">@drawable/cab_background_top</item> 
</style> 

Và với điều này:

<!-- styles.xml --> 
<style name="Theme.MyThemeLightBase" parent="@style/Theme.AppCompat.Light.DarkActionBar"> 
    <item name="actionModeStyle">@style/my_action_mode_style</item> 
    <item name="android:actionModeStyle">@style/my_action_mode_style</item> 
</style> 
<style name="my_action_mode_style" parent="@style/Widget.AppCompat.Light.ActionMode.Inverse"> 
    <item name="android:background">@drawable/cab_background_top</item> 
</style> 

Nhưng không ai trong số các giải pháp này dường như làm việc (xin hãy cho tôi biết nếu cuối cùng bạn cũng có thể thay đổi nền) vì vậy tôi quyết định để nền trắng và chỉ thay đổi các biểu tượng:

<!-- styles.xml --> 
<style name="Theme.MyThemeLight" parent="Theme.MyThemeLightBase"> 
    <item name="actionModeSelectAllDrawable">@drawable/ic_menu_selectall_holo_light</item> 
    <item name="android:actionModeSelectAllDrawable">@drawable/ic_menu_selectall_holo_light</item> 
    <item name="actionModeCutDrawable">@drawable/ic_menu_cut_holo_light</item> 
    <item name="android:actionModeCutDrawable">@drawable/ic_menu_cut_holo_light</item> 
    <item name="actionModeCopyDrawable">@drawable/ic_menu_copy_holo_light</item> 
    <item name="android:actionModeCopyDrawable">@drawable/ic_menu_copy_holo_light</item> 
    <item name="android:actionModePasteDrawable">@drawable/ic_menu_paste_holo_light</item> 
    <item name="actionModePasteDrawable">@drawable/ic_menu_paste_holo_light</item> 
</style> 

Lưu ý: Bạn cần chỉ định tệp styles.xml các giá trị, các giá trị-v11 và các giá trị-v14 vì một số thuộc tính không được thêm vào theo yêu cầu có hoặc không có tiền tố 'android'. Kiểm tra tài liệu cho cấp API: http://developer.android.com/reference/android/R.attr.html#actionModeCopyDrawable

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