在单个视图上设置样式不起作用

时间:2013-01-24 20:25:57

标签: android actionbarsherlock android-theme

我在我的一项活动中设置个别观点的主题时遇到了问题。

在我的清单中的应用程序标签中设置主题非常有效,就像在清单中的活动标签中设置主题一样。

无论我是否在清单中设置了主题,如果我尝试在单个视图上设置主题:

<TextView
        android:id="@+id/userFullNameTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_marginTop="5dp"
        android:layout_toRightOf="@+id/profileImageView"
        android:text="Bobby Joe"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:theme="@style/Theme.Sherlock.Light" />

视图始终显示默认主题(清单中未设置任何内容)或清单中指定的相同主题。

我没有在我的xml文件中的任何地方覆盖Theme.Sherlock.Light主题。我尝试了几种不同的主题组合无济于事。哦,我显然正在使用ActionBarSherlock。

修改

如果我创建新样式:

<style name="SideMenuStyle" parent="Theme.Sherlock.Light" >
</style>

并在我的xml中使用此样式,它仍然不会显示正确的样式。

1 个答案:

答案 0 :(得分:0)

没有为视图定义android:theme xml属性。您可以使用style xml属性,但必须引用视图的样式而不是整个主题。 像这样使用它:

<TextView
    android:id="@+id/userFullNameTextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_marginTop="5dp"
    android:layout_toRightOf="@+id/profileImageView"
    android:text="Bobby Joe"
    android:textAppearance="?android:attr/textAppearanceMedium"
    style="@style/MyTextViewStyle" />

请注意,您还可以为主题范围内的TextView或任何其他窗口小部件的所有实例定义默认主题。对于TextView,意味着在主题中定义android:textViewStyle

<style name="MyTheme" parent="@style/Theme.Sherlock">
    <item name="android:textViewStyle">@style/MyTextViewStyle</item>
</style>