首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓。CheckBoxPreference颜色

安卓。CheckBoxPreference颜色
EN

Stack Overflow用户
提问于 2016-05-17 23:44:30
回答 3查看 3.3K关注 0票数 10

如何更改CheckBoxPreference的复选框颜色?I指定主题属性不起作用。我也在清单中设置了主题,但它不是用强调色显示的,而是用默认颜色显示的。

清单:

代码语言:javascript
复制
<activity android:name=".ui.activities.AppPreferencesActivity"
android:theme="@style/PreferencesTheme"/>

风格:

代码语言:javascript
复制
<style name="PreferencesTheme">
    <item name="colorAccent">#FF4081</item>
</style>

我是不是遗漏了什么?提前谢谢。

EN

回答 3

Stack Overflow用户

发布于 2016-11-17 18:55:45

为您的设置活动创建主题,将此参数添加到样式:

代码语言:javascript
复制
 <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>`
票数 10
EN

Stack Overflow用户

发布于 2016-08-24 17:11:31

我在styles.xml中分配了想要的颜色,解决了这个问题

代码语言:javascript
复制
    <item name="android:colorAccent" tools:targetApi="21">@color/arrows</item>
    <item name="colorAccent">@color/arrows</item>

并对PreferenceActivity布局文件(在我的示例中为settings.xml)中的复选框使用自定义xml。

settings.xml

代码语言:javascript
复制
<?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

代码语言:javascript
复制
<?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

代码语言:javascript
复制
<?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"
/>
票数 4
EN

Stack Overflow用户

发布于 2016-05-18 00:39:43

使用ColorPrimary而不是colorAccent。

代码语言:javascript
复制
<item name="android:colorPrimary">#FF4081</item>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37280829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档