我试图找到使用xml匹配EditText旁边标签文本大小的最佳方法。 我宁愿不直接继承EditText样式,因为这会带来一堆我不感兴趣的属性。
<EditText
android:id="@+id/editQuantity"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/textUnit"
style="@style/FontMatchingEditText"
android:text="units"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
有没有办法引用另一种风格的特定属性?
否则,为了确保它与标签保持一致,为EditText制作自己的风格会更有意义吗?
修改
我希望可能有一种独立于主题的方式,语义上是这样的:
<item name="android:textSize">@android:style/Widget.EditText.textAppearance.textSize</item>
但我可能过于复杂了。 谢谢!
答案 0 :(得分:0)
假设您的父主题为android:Theme.Holo.Light
。
来自\android-sdk\platforms\android-X\data\res\values\themes.xml
:
<style name="Theme.Holo.Light" parent="Theme.Light">
...
<!-- Widget styles -->
<item name="editTextStyle">@android:style/Widget.Holo.EditText</item>
来自\android-sdk\platforms\android-X\data\res\values\styles.xml
:
<style name="Widget.Holo.EditText" parent="Widget.EditText">
</style>
<style name="Widget.EditText">
...
<item name="android:textAppearance">?android:attr/textAppearanceMediumInverse</item>
<item name="android:textColor">?android:attr/editTextColor</item>
</style>
现在,您可以只为EditText
重复用于TextView
的主题属性:
<TextView
android:id="@+id/textUnit"
android:textColor="?android:attr/editTextColor"
android:textAppearance="?android:attr/textAppearanceMediumInverse"
android:text="units"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />