Android XML 属性中的问号(?)

有人能解释一下 Android XML 属性中的问号意味着什么吗?

<TextView
style="?android:attr/windowTitleStyle"
More attributes
/>
41489 次浏览

问号表示它是对当前应用主题中的资源值的引用。有关它的更多信息,请参见 Linuxtopia Android 开发指南开发指南

\?逃避问号。

什么?允许您引用样式 属性而不是特定的 硬编码资源。有关详细信息,请参阅 Android 开发指南中的 “引用样式属性”

那么,这到底有什么用呢? 当考虑包含 相同的自定义资源属性多重主题时,这是最有意义的。

假设您有与电影相关的主题,比如 MyThemeTransformers 和 MyThemeHobbit,它们都有一个称为 电影展的属性。在每个主题定义中,vieweIcon 属性指向一个不同的@draable 资源,比如 robot.png 或 Hobbit.png。

你可以在主题生效的任何地方引用“ 电影节”(比如在工具栏或对话框或任何类型的视图布局中) ,当你在主题之间切换时,它会自动指向正确的绘图工具。使用不同的绘图工具不需要任何与主题相关的逻辑。您只需为每个主题定义 vieweIcon 属性,剩下的就交给 Android 框架了。