2010-05-21 40 views
1

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

风格:

<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> 

这适用于默认纱厂,但是不与我的自定义布局工作:

<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> 

回答

0

您希望您的TextViews在RelativeLayout使用相同的文本样式? 将"[email protected]/SpinnerText"属性添加到TextView。

+1

我意识到,但这意味着如果我改变了这个主题,我将不得不手动更新他们的布局 - 我不想这样做。顺便说一句,我试图添加@android:style/Widget.TextView.SpinnerItem作为样式,认为它会使用重写样式,但它不起作用 – jax 2010-05-21 10:31:57

+0

您是否尝试创建基于Spinner的自定义视图?然后你可以简单地设计它。 (http://developer.android.com/guide/topics/ui/custom-components.html#modifying) – 2010-05-21 10:37:32

1

解决:

您需要

?android:attr/spinnerItemStyle 

添加到布局的样式属性。现在它会像实际的Spinner Item一样起作用,并且所有更改为主题都将应用。

顺便说一句 - 我发现这下YOUR_SDK \平台SDK \ Android的1.6 \ DATA \资源\布局\ simple_spinner_item.xml

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

相关问题