更改<preferencescreen>项目</preferencescreen>的外观

时间:2013-07-20 15:01:30

标签: android xml preferencescreen

问题:

当设置菜单中列出首选项时,如何更改用于android:title属性的文本大小?

详细信息:

我的应用程序中的“设置”界面在Nexus 7(Jelly Bean)平板电脑上看起来不错,但在摩托罗拉Defy(Gingerbread)手机上几乎无法使用。我正在使用Android Dev指南中详述的标准PreferenceActivity方法。

我已经在网上搜索了几天,但还没有找到让事情看起来有所不同的解决方案。

在Android-Gingerbread手机上;

1)<EditTextPreference android:title .../>文本太大了,不会自动换行。

2)每个首选项旁边的标准“向下箭头”图标看起来很奇怪和错位。 (misaligned icon image

3)主题是Holo,但最后一个首选项下面的一个大空白区域由于某种原因是一个丑陋的浅灰色。

我已经尝试定义style.xml资源并在preferences.xml中放置style =“@ style / StyleName”来更改android:textSize属性,但它没有做任何事情。

以下是我的首选项屏幕的XML:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
    style="@style/SettingsMenu" >

    <PreferenceCategory 
        android:key="pref_key_mixProportions" 
        android:title="@string/pref_title_mixProportions"
        style="@style/SettingsMenu"
        >
        <EditTextPreference 
            android:key="pref_key_binderPortion"
            android:title="@string/pref_title_binderPortion"
            android:dialogTitle="Binder Portion"
            android:inputType="numberDecimal"
            android:maxLines="2"
            android:scrollHorizontally="false"
            android:defaultValue="1"
            android:persistent="true" />

        <EditTextPreference 
            android:key="pref_key_premixPortion"
            android:title="@string/pref_title_premixPortion"
            android:dialogTitle="Premix Portion"
            android:inputType="numberDecimal"
            android:layout_width="wrap_content"
            android:maxLines="2"
            android:scrollHorizontally="false"
            android:defaultValue="5"
            android:persistent="true"/>
    </PreferenceCategory>

    <PreferenceCategory 
        android:key="pref_key_binderProperties" 
        android:title="@string/pref_title_binderProperties">
        <EditTextPreference 
            android:key="pref_key_binderDensity"
            android:title="@string/pref_title_binderDensity"
            android:dialogTitle="Density of Binder powder (kg/m^3)"
            android:inputType="numberDecimal"
            android:defaultValue="2850"
            android:persistent="true"
            android:summary="@string/pref_summary_binderDensity"/>
        <EditTextPreference 
            android:key="pref_key_binderBagWeight"
            android:title="@string/pref_title_binderBagWeight"
            android:dialogTitle="Weight of Binder per bag (kg)"
            android:inputType="numberDecimal"
            android:defaultValue="20"
            android:persistent="true" />

    </PreferenceCategory>

    <PreferenceCategory 
        android:key="pref_key_premixProperties" 
        android:title="@string/pref_title_premixProperties">
        <EditTextPreference 
            android:key="pref_key_premixDensity"
            android:title="@string/pref_title_premixDensity"
            android:dialogTitle="Density of Sand and Aggregate Mix (kg/m^3)"
            android:inputType="numberDecimal"
            android:defaultValue="1850"
            android:persistent="true"
            android:summary="@string/pref_summary_premixDensity"/>

    </PreferenceCategory>

</PreferenceScreen>

我的styles.xml包含:

<style name="SettingsMenu">
    <item name="android:textSize">15sp</item>
</style>

但是无论我给大小赋予什么值,文本看起来都是一样的。

我看到有些人建议使用<PreferenceScreen android:layout=".... />,但我没有找到明确解释如何做到这一点。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

将样式文件添加到首选项活动旁边的清单声明中 -

之类的东西
<activity
    android:name="com.example.PrefsActivity"
    android:theme="@style/PreferencesStyle" >
</activity>

这将解决问题