增加CheckboxPreference标题和摘要文本大小以及首选项条目的发光

时间:2013-09-13 13:24:46

标签: android android-preferences listpreference checkboxpreference

您好我正在处理邮件设置作为首选项。

我正在尝试更改android:title和android:CheckboxPreference的摘要文本字体大小。

enter image description here

为此,我正在尝试以下代码

   <PreferenceCategory
    android:key="prefcategory1"
    android:title="GENERAL SETTINGS..." >

    <CheckBoxPreference
        android:defaultValue="false"
        android:enabled="true"
        android:key="checkBoxdelete"
        android:layout="@layout/mylayout"     <!--linking it to mylayout.xml -->
        android:summary="Deletes old messages as limits are reached"
        android:title="Delete old messages" />
  </PreferenceCategory>

mylayout.xml

<TextView android:id="@+android:id/title"
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:paddingLeft="8dp"
    android:textColor="#FFFFFF"
    android:textSize="30px"
    android:textStyle="bold"/>  

<TextView android:id="@+android:id/summary"
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:paddingLeft="8dp"
    android:textColor="#FFFFFF"
    android:textSize="20px"
    android:textStyle="bold"/>

通过使用此功能,文本大小会增加,如下面的屏幕截图所示。但是,我无法看到复选框。如何解决此问题?

enter image description here

4 个答案:

答案 0 :(得分:8)

当有更简单的方法来执行相同的操作时,这里的大多数答案都是完全错误或太复杂。

仅供未来读者使用 - 您可以更改textSize/ textColor

中的styles.xml
   <style name="PreferencesTheme" parent="@android:style/Theme.Black">
            <item name="android:textSize">34sp</item>
            <item name="android:textColorSecondary">#000000</item>
            <item name="android:textColorPrimary">#000000</item>
    </style>

其中textColorPrimary将更改checkBoxPreference的标题颜色,textColorSecondary将更改摘要的颜色。

答案 1 :(得分:1)

您需要将复选框添加到自定义布局中,如下所示:

<CheckBox
    android:id="@+android:id/checkbox"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_centerVertical="true"
    android:focusable="false" />

答案 2 :(得分:0)

为了增加复选框首选项中文本的大小,我使用了自定义类。

import android.content.Context;
import android.support.v7.preference.CheckBoxPreference;
import android.support.v7.preference.PreferenceViewHolder;
import android.util.AttributeSet;
import android.widget.TextView;


@SuppressWarnings("unused")
public class CustomCheckBoxPreference extends CheckBoxPreference {

    private Context mContext;

    public CustomCheckBoxPreference(Context context) {
        super(context);
        mContext = context;

    }

    public CustomCheckBoxPreference(Context context, AttributeSet attrs) {
        super(context, attrs);
        mContext = context;

    }

    public CustomCheckBoxPreference(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        mContext = context;

    }

    public CustomCheckBoxPreference(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
        super(context, attrs, defStyleAttr, defStyleRes);
        mContext = context;

    }

    @Override
    public void onBindViewHolder(PreferenceViewHolder holder) {
        super.onBindViewHolder(holder);
        TextView textView = (TextView) holder.findViewById(android.R.id.title);
        textView.setTextSize(14); // add your integer value is sp here
    }
}

我在偏好布局(R.xml.preferences)中添加了这个视图

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">

    <CustomCheckBoxPreference
        android:defaultValue="true"
        android:key="preferenceKey"
        android:persistent="true"
        android:title="title"/>


</PreferenceScreen>

答案 3 :(得分:-1)

您的摘要占用了复选框的空间。

尝试添加“&lt; br /&gt;”限制之后

或缩小字体大小

或者您可以显式设置textView的宽度或高度。