我正在努力让一切EditText
在我的应用程序中具有一致的外观。我知道我可以做这样的事情:
<style name="App_EditTextStyle">
<item name="android:background">@drawable/filled_roundededges_box_dark</item>
<item name="android:textColor">#808080</item>
<item name="android:layout_height">45dip</item>
</style>
然后我可以做一个特定的EditText
通过这样做有这种风格:
<EditText ...
style="@style/App_EditTextStyle
...>
但这样我就必须记住为每个单独设置样式EditText
在我的应用程序中,即使不容易出错,也是乏味的。
有什么办法可以让它成为主题或其他东西的一部分吗?这样我就不必将这种风格与每个EditText
。像这个虚构的代码块一样:
<style name="App_Theme" parent="@android:style/Theme.Holo">
...
<item name="android:EditTextSyle">@style/App_EditTextStyle</item>
...
<style>
然后在我的AndroidManifest.xml
我有类似的东西:
<application
....
android:theme="@style/App_Theme">
瞧!我所有的EditText
具有一致的样式,而无需我为每个实例指定样式。
覆盖指向的属性EditText
样式(命名为editTextStyle
:) )在您的自定义主题中:
<style name="App_Theme" parent="@android:style/Theme.Holo">
<item name="android:editTextStyle">@style/App_EditTextStyle</item>
</style>
并使您的自定义样式得以扩展Widget.EditText
:
<style name="App_EditTextStyle" parent="@android:style/Widget.EditText">
<item name="android:background">@drawable/filled_roundededges_box_dark</item>
<item name="android:textColor">#808080</item>
<item name="android:layout_height">45dip</item>
</style>
Edit:
如果您使用的是较新的 AppCompat 相关主题,请使用不带 android 前缀的 editTextStyle 属性:
<style name="App_Theme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="editTextStyle">@style/App_EditTextStyle</item>
</style>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)