?attr / selectableItemBackground的定义和确切函数

时间:2015-08-23 21:16:58

标签: android android-support-library

我偶然发现了?attr/selectableItemBackgroundandroid - apply selectableItemBackground in xml with support v7的表达 我想查看该表达式的确切功能,因为我不明白开头的问号是什么,以及它如何完成它的任务。

它说它是支持库v7的一部分,但我试过查找它并且找不到有用的洞察力

  • 究竟
  • 在哪里定义并
  • 究竟是什么。

1 个答案:

答案 0 :(得分:5)

语法?attr/something表示“使用为当前主题定义的名为{something}的属性的值”。

selectableItemBackground是应用主题中属性的名称(通常位于styles.xml)。您可能没有在主题中为其设置值,但它可能在您扩展的父主题中具有值,因此您的主题也具有该值。

当您在使用不同主题的地方使用相同的布局时,此语法很有用。例如,假设您有两个主题:

<style name="Theme.Foo" parent="..." >
    <item name="android:textColorPrimary">@android:color/white</item>
    ...
</style>

<style name="Theme.Bar" parent="..." >
    <item name="android:textColorPrimary">@android:color/black</item>
    ...
</style>

假设你的一个布局文件中有这个:

<TextView
    ...
    android:textColor="?android:attr/textColorPrimary" />

根据布局膨胀时使用的这两个主题中的哪一个(例如,当您使用setContentView()时),TextView可以是白色或黑色文本颜色。