为什么我的一些样式不能使用较低的API?

时间:2016-04-12 19:50:59

标签: android textview android-theme android-styles

我有一个简单的问题!

在我的styles.xml文件中,我有

<style name="TextViewStyle" parent="android:Widget.TextView">
    <item name="android:padding">20px</item>
    <item name="android:background">#9cd0e8</item>
    <item name="android:textColor">#254b7c</item>
    <item name="android:textSize">18sp</item>
    <item name="android:textStyle">bold</item>
</style>

在我的activity_main.xml中,我有

<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:theme="@+styles/TextViewStyle"
    android:text="Sample Text"/>

我想要做的是,在我的Android应用程序中,我计划在某个活动中放置许多具有类似属性的TextView。我没有每次使用每个TextView实例编写这些“属性”,而是将它们组合在styles.xml文件中的样式中,并将每个TextView的主题设置为该样式。

它工作正常,做我想做的事,但只有21以上的API!我的应用程序应该支持API级别15的设备。为什么我的方法不适用于较低的API?

请尽快帮忙。我需要尽快完成。

修改

通过'工作',我的意思是我在我的样式中设置的属性(填充,颜色等)出现在TextViews上。但是在较低的API中,TextViews看起来好像我没有对它们应用任何属性。显示纯文本而不是样式文本。

1 个答案:

答案 0 :(得分:1)

  1. 从您的风格中移除父级
  2. 从textView中移除android:theme,(为什么有+符号?)
  3. 而不是主题将此放入textView
  4.   

    风格=&#34; @风格/ TextViewStyle&#34;

    顺便说一下,使用dp而不是px;)