我有一個白色背景的應用小部件。一些顯示的文字使用?android:textColorPrimary
,一些使用?android:textColorSecondary
,一些使用我定義的顏色。爲什麼?android:textColorPrimary在不同的API版本中獲得不同的值?
由於某些原因,當我在預先牛軋糖(24或更低)上運行我的應用程序時,顏色是白色的,使得文本在白色背景上不可見,但任何24和更高顯示爲黑色或灰色。我定義的顏色總是可以的。
另外有趣的是,應用程序小部件中的代碼幾乎與實際應用程序相同(都顯示項目列表),應用程序版本(即使在這些較舊的API上)也使用深色,但由於某種原因小部件爲文本選擇白色。
如果我穿過的款式,我得到這個XML代碼追蹤:
<!-- The most prominent text color. -->
<attr name="textColorPrimary" format="reference|color" />
這是什麼意思?它如何知道最突出的文本顏色是什麼?爲什麼它在小部件和應用程序中有所不同,爲什麼只在較舊的API版本上纔有所不同?
有什麼我可以做些什麼來解決這個以便它是否一致?我使用相同的主題。爲什麼會發生?
注意:只要設置一個特定的顏色,這不是我要求的。當然,我可以將文字設置爲黑色或其他顏色,但我希望使用這些樣式,以便將來可以根據需要更改顏色,尤其是因爲我使用的是日/夜主題。也許它與此有關?好吧,我嘗試了一個正常的主題,但問題仍然存在(文本在小部件上不可見 - 只有小部件 - 在API 24以上)。
請讓我知道,如果有不清楚的地方,我會更新的問題。謝謝。
由於不同的操作系統版本使用不同的主題。 –
你能更具體一點嗎?爲什麼對於應用程序小部件而言,主題與同一操作系統版本的應用程序不同?我只使用appCompat主題。好吧,無論如何這都是主題。一定。只是不知道是什麼。 –
不確定。但是我從Windows桌面借用了一個老技巧(解決方法!):**陰影**(按照向右和向右移動,所以燈光來自左上角,如預期的那樣)。白色背景上的白色文字由於黑色(黑色)陰影仍然可見。黑色屏幕上的影子幾乎看不見,只留下文字。 –