2

所以我有styles.xml以下内容:

....
<style name="TextAppearance.CustomTheme.Widget.ActionBar.Menu"
                parent="android:TextAppearance.Holo.Widget.ActionBar.Menu">
    <item name="android:textSize">@dimen/text_size</item>
    <item name="android:textStyle">{text_style}</item>
</style>
...

请注意,text_size 是在dimens.xml文件中定义的。我需要将 textStyle 值存储在另一个类似于 textSize 的文件中,但我不知道应该把它放在哪里。文本样式(普通、粗体、斜体)似乎没有资源类型。

我需要将它放在另一个文件中的原因是这样我只能拥有一个styles.xml然后多个其他文件(dimens.xml,colors.xml等),这些文件会根据屏幕大小等而变化。所以我最终只有一个styles.xml在 /values 上,然后是多个值文件夹(\values-sw480dp、\values-sw720dp),其中包含不同dimens.xml的 ,colors.xml等文件。

此外,我尝试引用如下所示的字符串,但它无效。

<item name="android:textStyle">@string/text_style</item>
4

2 回答 2

2

显然不可能做到这一点。查看TextView 的 textStyle 属性 引用,它看起来不接受引用,因为该属性的文档没有像其他属性那样说明以下内容:

这也可能是对包含此类型值的资源(形式为“@[package:]type:name”)或主题属性(形式为“?[package:][type:]name”)的引用.

它只说明它接受的常量(以及它们与 | 的组合)。

于 2013-10-24T18:39:00.650 回答
0

当我在我的 styles.xml 资源文件的 android:textStyle 属性中编写“粗体”时,它起作用了。

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

<style name="questionStyle" parent="TextAppearance.AppCompat">
    <style name="android:textStyle">bold</style>
    <style name="android:textSize">18sp</style>


</style>

如果这个答案是你的意思。对不起,如果我不明白你的问题。

于 2018-03-16T22:05:48.180 回答