如何告诉我自己的自定义Spinner布局使用我的主题?

时间:2010-05-21 07:53:38

标签: android

如何告诉我自己的自定义Spinner布局使用我的主题?

风格:

<style name="SpinnerText" parent="@android:style/Widget.TextView.SpinnerItem">
    <item name="android:textAppearance">@style/AnswerTextElement</item>
<item name="android:gravity">center_vertical|center_horizontal</item>
</style>

主题:

 <style name="ApplicationTheme" parent="android:style/Theme.NoTitleBar">
    <item name="android:buttonStyle">@style/Button</item>
    <item name="android:spinnerStyle">@style/Spinner</item>
    <item name="android:spinnerItemStyle">@style/SpinnerText</item>
</style>

这适用于默认的Spinners,但不适用于我的自定义布局:

<RelativeLayout android:layout_width="fill_parent"
android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android">
<TextView android:layout_height="wrap_content" android:id="@+id/text1"
    android:text="label name" android:layout_width="fill_parent"
    android:layout_toLeftOf="@+id/check1"></TextView>
<CheckBox android:layout_width="wrap_content"
    android:layout_height="wrap_content" android:id="@+id/check1"
    android:layout_alignParentRight="true" android:clickable="false"
    android:focusable="false" android:focusableInTouchMode="false"
    style="@style/CheckBoxPlainBackground"></CheckBox>
</RelativeLayout>

2 个答案:

答案 0 :(得分:1)

<强>解决:

您需要添加

?android:attr/spinnerItemStyle

到布局的style属性。现在它将像实际的Spinner项目一样,并且所有更改为主题的内容都将适用。

顺便说一下 - 我在SDK中的YOUR_SDK \ platforms \ android-1.6 \ data \ res \ layout \ simple_spinner_item.xml

中找到了这个

您将能够在此目录中找到其他控件的其他样式。

答案 1 :(得分:0)

您希望RelativeLayout中的TextViews使用相同的文本样式吗? 将"style=@style/SpinnerText"属性添加到TextView。