bee*_*nnn 5 inheritance android android-theme
我想继承editText
从android:Theme
,而我的父母主题android:Theme.Holo.Light
.
有没有"干净"的方法来做到这一点,没有将android sdk文件夹中的资源复制到我的项目中?
Ste*_*yle 12
所以我的想法是拥有一个自定义主题(实际上只是一种风格),android:Theme.Holo.Light
然后覆盖EditText
属性以使用父设置android:Theme
.
它看起来像android:Theme.Holo.Light
使用editTextStyle
属性引用来更改外观EditTexts
:
<item name="editTextStyle">@android:style/Widget.Holo.Light.EditText</item>
Run Code Online (Sandbox Code Playgroud)
所以你可以用editTextStyle
from 覆盖它android:Theme
:
<style name="YourTheme" parent="android:Theme.Holo.Light">
<item name="android:editTextStyle">@android:style/Widget.EditText</item>
</style>
Run Code Online (Sandbox Code Playgroud)
然后,您所要做的就是YourTheme
在您的清单(或代码,如果您真的想要)中应用以获取您的自定义主题.您可能需要进一步调整内容,请查看所有库存主题:https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/core/res/res/values/themes. XML
我刚刚测试了这一点,并意识到它似乎android:style/Widget.EditText
似乎没有应用旧版Android的背景,很可能是因为它使用了一个引用android:editTextBackground
,Holo.Light
设置.我只是尝试android:editTextBackground
手动更改为旧版EditText
drawable,它适用于我.
注意:只在你的styles.xml
下面应用这个调整/values-v11
,因为只有3.0版本可以使用android:editTextBackground
,而旧版本的android已经使用了旧的EditText
背景.如果app min> = API 11,则无需担心这一点.
<style name="YourTheme" parent="android:Theme.Holo.Light">
<item name="android:editTextStyle">@android:style/Widget.EditText</item>
<item name="android:editTextBackground">@android:drawable/edit_text</item>
</style>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10267 次 |
最近记录: |