7

当我新建一个android项目时,默认Theme是android:Theme.Light,我发现TextView控件的字体很小,是不是说android:theme="@style/AppTheme"中textAppearance的默认值是textAppearanceSmall ? 谢谢!

<style name="AppBaseTheme" parent="android:Theme.Light">
        <!--
            Theme customizations available in newer API levels can go in
            res/values-vXX/styles.xml, while customizations related to
            backward-compatibility can go here.
        -->
</style>
4

2 回答 2

11

您可以在默认的 styles.xml 文件中找到用于所有 Android 小部件的样式。例如,您可以在此处查看此文件:https ://github.com/android/platform_frameworks_base/blob/master/core/res/res/values/styles.xml

或者直接进入你的 SDK 文件夹,例如在我的电脑上,它可以在这里找到:D:\Dev\android-sdk\platforms\android-17\data\res\values\styles.xml

您将在此文件中找到以下样式的定义TextView

<style name="Widget.TextView">
    <item name="android:textAppearance">?android:attr/textAppearanceSmall</item>
    <item name="android:textSelectHandleLeft">?android:attr/textSelectHandleLeft</item>
    <item name="android:textSelectHandleRight">?android:attr/textSelectHandleRight</item>
    <item name="android:textSelectHandle">?android:attr/textSelectHandle</item>
    <item name="android:textEditPasteWindowLayout">?android:attr/textEditPasteWindowLayout</item>
    <item name="android:textEditNoPasteWindowLayout">?android:attr/textEditNoPasteWindowLayout</item>
    <item name="android:textEditSidePasteWindowLayout">?android:attr/textEditSidePasteWindowLayout</item>
    <item name="android:textEditSideNoPasteWindowLayout">?android:attr/textEditSideNoPasteWindowLayout</item>
    <item name="android:textEditSuggestionItemLayout">?android:attr/textEditSuggestionItemLayout</item>
    <item name="android:textCursorDrawable">?android:attr/textCursorDrawable</item>
</style>

您可以看到,确实在此文件中textAppearanceSmall,默认情况下定义了文本大小。

于 2013-06-06T07:50:52.003 回答
8

TextView不采用默认值,textAppearance它被设置为textAppearanceSmall默认显式使用。

Themes.xml包含以下行,它定义了的默认样式TextView

<item name="textViewStyle">@android:style/Widget.TextView</item>

引用的样式包含以下行:

<item name="android:textAppearance">?android:attr/textAppearanceSmall</item>

这就是为什么TextView默认为小文本大小的原因。

于 2013-06-06T07:52:36.340 回答