2017-09-17 86 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

相關問題