2016-05-17 8 views
6

に変更するにはどうすればよいですか?テーマ属性を指定しても機能しません。私はマニフェストにもテーマを設定しましたが、アクセントカラーで表示されるのではなくデフォルトカラーで表示されます。Android。 CheckBoxPreferenceの色を

enter image description here

マニフェスト:

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

スタイル:

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

私は何かが足りないのですか?前もって感謝します。

答えて

0

colorAccentの代わりにColorPrimaryを使用しています。

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

私はそれが私のstyles.xml

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

そしてPreferenceActivityのレイアウトファイル(私の場合のsettings.xml)内のチェックボックスのカスタムXMLを使用して所望の色を割り当てる解決しました。

の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

にこのパラメータを追加し、あなたの設定の活動にテーマを作成します。スタイル:

<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>

関連する問題