gpt4 book ai didi

android - 主题继承在 Android 中究竟是如何工作的?

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

我在 res/values/styles.xml 中有以下主题:

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="AppBaseTheme" parent="@android:style/Theme.NoTitleBar">
</style>

<style name="AppTheme" parent="AppBaseTheme">
<item name="android:windowNoTitle">true</item>
</style>
</resources>

如果我删除 <item name="android:windowNoTitle">true</item>行,我的 Activity 上面有标题栏。但是,如果我将该行保留在那里,那么它们就没有标题栏(这正是我想要的)。

我很好奇为什么parent="@android:style/Theme.NoTitleBar"好像没有效果?是否parent不按照我的想法去做吗?我认为它是这样工作的:

@android:style/Theme.NoTitleBar --> AppBaseTheme --> AppTheme
^ ^ ^
| | |
| | Has everything AppBaseTheme
| | does, unless it's overridden
| |
| Has everything @android:style/Theme.NoTitleBar
| does, unless it's overridden (which I'm not
| doing)
|
Sets whatever it needs to to not have a title, which I assume
is done by setting <item name="android:windowNoTitle">true</item>

但是,我还发现如果我设置 <item name="android:windowNoTitle">true</item>AppBaseTheme它也没有效果;我必须在 AppTheme 中设置它.那么指定父级到底有什么意义呢?

最佳答案

我想我刚刚弄明白了。原来在我创建项目的时候,Android创建了一个res/values-14/styles.xml文件,里面是 <style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar"> .

事实证明,res/values-14/styles.xml文件覆盖了我的默认 res/values/styles.xml因为我正在测试的设备具有 API 级别 14,因此它更喜欢 values-14 中的文件比默认值 values .

继承似乎确实像我想的那样起作用;我只是没有意识到我第一次创建项目时创建的文件会覆盖某些内容。

关于android - 主题继承在 Android 中究竟是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14531093/

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