gpt4 book ai didi

android - 使用 Holo 父主题从 Theme.Light 继承 editText

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:02:51 28 4
gpt4 key购买 nike

我想从 android:Theme 继承 editText 而我的父主题是 android:Theme.Holo.Light
除了将 android sdk 文件夹中的资源复制到我的项目中之外,还有什么“干净”的方法可以做到这一点吗?

最佳答案

所以我的想法是拥有一个从android:Theme.Holo.Light 扩展的自定义主题(实际上只是一种样式),然后覆盖EditText 属性使用 android:Theme 中的父设置。

看起来 android:Theme.Holo.Light 使用 editTextStyle 属性引用来更改 EditTexts 的外观:

<item name="editTextStyle">@android:style/Widget.Holo.Light.EditText</item>

因此您可以使用 android:Theme 中的 editTextStyle 覆盖它:

<style name="YourTheme" parent="android:Theme.Holo.Light">
<item name="android:editTextStyle">@android:style/Widget.EditText</item>
</style>

然后,您所要做的就是在您的 list 中应用 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 可绘制对象,它对我有用。

注意:仅在 /values-v11 下的 styles.xml 上应用此调整,因为只有 3.0 版并且可以使用 android:editTextBackground ,而旧版本的 android 将已经使用旧的 EditText 背景。如果应用最低 >= 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>

关于android - 使用 Holo 父主题从 Theme.Light 继承 editText,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17346550/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com