2017-09-17 87 views
1

我对@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

的 “$”(美元符号)被用于从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

对于上面的问题有很好的和及时的最新信息这本特殊asnwer: https://stackoverflow.com/a/46223464/550967

相关问题