2016-05-17 21 views
6

Come posso cambiare il colore della casella di controllo di CheckBoxPreference? Io specificando l'attributo theme non funziona. Ho anche impostato il tema in manifest, ma non viene visualizzato con il colore accento ma con il colore predefinito.Android. Colore CheckBoxPreference

enter image description here

manifesto:

<activity android:name=".ui.activities.AppPreferencesActivity" 
android:theme="@style/PreferencesTheme"/> 

Stile:

<style name="PreferencesTheme"> 
    <item name="colorAccent">#FF4081</item> 
</style> 

Mi sto perdendo qualcosa? Grazie in anticipo.

risposta

0

Utilizzo di ColorPrimary anziché colorAccent.

<item name="android:colorPrimary">#FF4081</item> 
3

ho risolto assegnando i colori desiderati nel mio styles.xml

<item name="android:colorAccent" tools:targetApi="21">@color/arrows</item> 
    <item name="colorAccent">@color/arrows</item> 

e utilizzando un XML personalizzato per la casella di controllo all'interno del file di layout PreferenceActivity (settings.xml nel mio caso).

settings.xml

<?xml version="1.0" encoding="utf-8"?> 
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> 
    <CheckBoxPreference 
     android:defaultValue="false" 
     android:key="prefSendReport" 
     android:summary="@string/desc_daily_not" 
     android:title="@string/title_daily_not" 
     android:layout="@layout/checkbox_preference" 
     android:widgetLayout="@layout/custom_checkbox" 
     > 
    </CheckBoxPreference> 

    <Preference 
     android:key="prefSyncFrequency" 
     android:summary="@string/pref_sync_frequency_summary" 
     android:title="@string/pref_sync_frequency" 
     android:layout="@layout/checkbox_preference" 
     /> 

checkbox_preference.xml

<?xml version="1.0" encoding="utf-8"?> 
<!-- Layout for a Preference in a PreferenceActivity. The Preference is able 
to place a specific widget for its particular type in the "widget_frame" 
layout. --> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" android:layout_height="wrap_content" 
android:minHeight="?android:attr/listPreferredItemHeight" 
android:gravity="center_vertical" android:paddingRight="?android:attr/scrollbarSize" 
> 

    <RelativeLayout android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="15dip" 
     android:layout_marginRight="6dip" 
     android:layout_marginTop="6dip" 
     android:layout_marginBottom="6dip" 
     android:layout_weight="1" 
    > 

     <TextView android:id="@+android:id/title" 
      android:layout_width="wrap_content"  
      android:layout_height="wrap_content" 
      android:singleLine="true" 
      android:textAppearance="? 
      android:attr/textAppearanceMedium" 
      android:ellipsize="marquee" 
      android:fadingEdge="horizontal" 
      android:textColor="@color/arrows" 
     /> 

     <TextView android:id="@+android:id/summary" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@android:id/title" 
      android:layout_alignLeft="@android:id/title" 
      android:textAppearance="?android:attr/textAppearanceSmall" 
      android:maxLines="4" 
      android:textColor="@color/mdtp_light_gray" 
     /> 

    </RelativeLayout> 

    <!-- Preference should place its actual preference widget here. --> 
    <LinearLayout android:id="@+android:id/widget_frame" 
    android:layout_width="wrap_content" android:layout_height="match_parent" 
    android:gravity="center_vertical" android:orientation="vertical" 
    /> 

</LinearLayout> 

custom_checkbox.xml

<?xml version="1.0" encoding="UTF-8"?> 
<CheckBox xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+android:id/checkbox" android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:focusable="false" 
    android:clickable="false" 
/> 
5

Crea tema per la vostra attività di impostazione, aggiungere questi parametri a lo stile:

<style name="AppTheme.NoActionBar.SettingActivity" parent="AppTheme.NoActionBar"> <!--when the check box is checked --!>
<item name="colorControlNormal">@color/your-color</item> <!--when the check box is unchecked --!>
<item name="colorControlActivated">@color/your-color</item> </style>

Problemi correlati