当前位置: 首页 > 知识库问答 >
问题:

定义和确切的功能?attr/selectableItembackground

童花蜂
2023-03-14

我偶然发现了表达式? attr/selectableItembackground通过android-在xml中应用selectableItembackground并支持v7。
我想看看该表达式的确切功能,因为我不明白开头的问号象征着什么以及它是如何准确地完成任务的。

它说它是支持库v7的一部分,但我试着查找它,却找不到有用的信息

  • 到底是什么,
  • 定义它的位置和
  • 它到底是做什么的。

共有1个答案

羊新翰
2023-03-14

语法 ?attr/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可以具有白色或黑色文本颜色。

 类似资料:
  • 问题内容: 使用我正在尝试在模板中使用自己的功能之一。不幸的是,我无法使用go模板的功能映射功能。我得到的只是以下错误: 简化的测试用例如下所示(): 我有以下简单模板(): 这是1.1.1。 问题答案: IIRC,必须在解析模板之前定义模板功能图。下面的代码似乎有效。

  • 更准确地说,函数接口定义为具有一个抽象方法的任何接口。 然后他继续介绍示例,其中一个是接口: 我能够测试是否可以使用lambda函数代替比较器参数,并且它能够工作(例如)。

  • 问题内容: 在python中,我尝试执行以下操作以定义函数: 但是由于某种原因,这是错误的。我收到此错误: 我该如何解决? 谢谢 问题答案: 这不是在python中声明函数的方式。您要写的是: 也就是说,如果您已经具有和函数。

  • 问题内容: 我正在尝试通过阅读原始规范来围绕ES6中新的标准化块级功能进行研究。我的肤浅理解是: ES6中允许块级函数声明。 他们吊在街区的顶部。 在严格模式下,它们在包含块之外不可见。 但是,由于这些语义的一部分被指定为“可选”且仅对于Web浏览器是强制性的(附件B),这使情况进一步复杂化。所以我想填写下表: 我也不清楚在这种情况下“严格模式”是什么意思。这种区别似乎在附件B3.3中引入,作为在

  • 主要内容:计算机系统的结构,操作系统做什么?在计算机系统(包括硬件和软件)中,硬件只能理解机器代码(以和的形式代码),这对于一般的用户来说没有任何意义。 我们需要一个可以充当中介的系统,并管理系统中存在的所有进程和资源。 操作系统可以被定义为用户和硬件之间的接口。 它负责执行所有进程,资源分配,CPU管理,文件管理和许多其他任务。 操作系统的目的是提供一种用户可以方便有效地执行程序的环境。 计算机系统的结构 计算机系统包括: 用户(使用电脑

  • 本文向大家介绍racket 功能定义,包括了racket 功能定义的使用技巧和注意事项,需要的朋友参考一下 示例 可以使用以下lambda表格创建Racket中的函数。该表格包含一个参数列表和一个正文。 在上面的示例中,该函数接受两个参数,并返回将它们相乘的结果。 每当我们想将两个数字相乘时,重新编写函数及其主体都是很麻烦的,所以让我们给它起一个名字。要为其命名,请使用define表格。这会将功能