我熟悉@drawable,但在克隆的回购中,我发现@ r $ drawable在引用项目中的drawable时被使用。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:drawable="@r$drawable/ic_home_live_pressed" />
</selector>
VS
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:drawable="@drawable/ic_home_live_pressed"/>
</selector>
答案 0 :(得分:0)
“$”(美元符号)用于从Android XML文件引用内部类。
例如:
class Outer {
class Innter {
}
}
将被称为
Outer$Inner
通常这是引用非静态内部类的方法。 “。” (点)表示法用于静态内部类。
您看到的源代码将drawable称为非静态内部类是很奇怪的,因为Drawable是一个静态内部类。
如果您可以共享指向此类代码的存储库的链接,则可以更轻松地解释原因。
在以下网址找到更多相关信息:
Android XML referencing via dollar sign vs dot sign
Error referencing an inner class View in layout/main.xml
上述问题的具体内容有关于此的良好和最新信息: https://stackoverflow.com/a/46223464/550967