这是一个XML格式的TextView示例,它将样式TextContactContactName
正确应用于TextView。
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/photo"
android:layout_alignTop="@id/photo"
android:paddingLeft="10dp"
android:text="First Last"
style="@style/TextContactContactName"
/>
现在,我还要在此元素上设置其他一些与文本无关的内容。因此我尝试移动TextContactContactName
并通过“android:textAppearance”
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/photo"
android:layout_alignTop="@id/photo"
android:paddingLeft="10dp"
android:text="First Last"
android:textAppearance=@style/TextContactContactName"
/>
不幸的是,没有应用文本格式。
这就是样式(存储在res/values/styles-text.xml
)中的样子:
<style name="TextContactContactName">
<item name="android:textSize">24sp</item>
<item name="android:textColor">#333333</item>
<item name="android:shadowColor">#ffffff</item>
<item name="android:shadowDx">0</item>
<item name="android:shadowDy">1</item>
<item name="android:shadowRadius">1</item>
</style>
我使用textAppearance
标签错了吗?
我在Android 2.2上测试过 - HTC Desire。
答案 0 :(得分:22)
好的,看起来像我的错。我做了一个快速测试:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Text styled using 'style'."
style="@style/UiTestTextView"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Text styled using 'textAppearance'."
android:textAppearance="@style/UiTestTextView"
/>
和styles-text.xml:
<style name="UiTestTextView">
<item name="android:textColor">#ff0000</item>
<item name="android:textSize">16sp</item>
<item name="android:shadowColor">#ffffff</item>
<item name="android:shadowDx">1</item>
<item name="android:shadowDy">2</item>
<item name="android:shadowRadius">3</item>
</style>
关键是要记住shadow*
元素不是文本属性。因此,将不会通过textAppearance应用。
我将在Android Developers Mailing列表中询问是否需要此行为。
答案 1 :(得分:1)
我就此问题提交了一份错误报告。我想我得到了标准回复“阴影不被视为文本外观的一部分”。