2015-12-15 35 views
0

好吧,我不需要,也不需要AppCompat的東西。這是一個ROM實用程序應用程序,所以我確切知道支持哪種API(我實際上控制着整個系統)。我不需要API 22以下的任何東西,我正在編譯該API。如何在Android API中設置Switch的顏色21+

我想知道我可以添加到我的styles.xml以獲得開關顏色以匹配主題(@ color/primary_color)的其餘部分。這就是我所擁有的...(其中一些可能不是一次性測試太多所必需的)。

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="AppTheme" parent="android:Theme.Material.Light.DarkActionBar"> 
     <item name="android:colorButtonNormal">@color/primary_color</item> 
     <item name="android:shadowColor">@android:color/black</item> 
     <item name="android:colorControlHighlight">@color/primary_color</item> 
     <item name="android:textViewStyle">@style/BlackText</item> 
     <item name="android:actionMenuTextColor">@color/hilight_color</item> 
     <item name="android:colorControlActivated">@color/primary_color</item> 
     <item name="android:colorPrimary">@color/blackness</item> 
     <item name="android:colorAccent">@color/primary_color</item> 
    </style> 
    <style name="BlackText"> 
     <item name="android:textColor">@android:color/black</item> 
    </style> 
</resources> 
+0

您將需要的是android:thumb和android:track來更改拇指和開關的軌跡。 – xiaomi

+0

訪問這個http://stackoverflow.com/questions/11253512/change-on-color-of-a-switch可能會幫助你 –

+0

基本上,它不能不改變drawable?我每天都越來越討厭Android的API –

回答

1

在XML佈局:

<android.support.v7.widget.SwitchCompat 
      android:id="@+id/switch_subs" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:background="@android:color/transparent" 
      android:button="@null" 
      android:padding="20dp" 
      android:theme="@style/ColorSwitchStyle" /> 

在styles.xml

<style name="ColorSwitchStyle"> 
    <item name="colorControlActivated">@color/colorPrimary</item> 
</style> 

sample

***在我的情況colorPrimary是藍色的。

+0

我不想使用Compat庫。我確實試圖嘗試這一點,並將從Switch引用此代碼的代碼更改爲SwitchCompat,並添加了庫依賴項。它崩潰了「試圖從一個空的對象引用調用接口方法'int java.lang.CharSequence.length()'在StaticLayout中從SwitchCompat調用了幾層,並且我自己的調用甚至沒有在回溯中。這真的很難嗎? –