2015-11-25 115 views

回答

8

我被困在這行:

insetsDirtyField = RecyclerView.LayoutParams.class.getDeclaredField("mInsetsDirty"); 

Java中的.class 「關鍵詞」 是等同於typeof()關鍵字C#,所以這是(還挺/八九不離十),如:

var insetsDirtyField = typeof(RecyclerView.LayoutParams).GetDeclaredField("mInsetsDirty"); 

除非它不是,因爲typeof()返回System.Type,不知道java.lang.Object情況下任何東西。

相反,你應該使用Java.Lang.Class.FromType(Type)獲得Java.Lang.Class實例,那麼這將允許您使用Java反射:

var klass = Java.Lang.Class.FromType (typeof (RecyclerView.LayoutParams)); 
var insetsDirtyField = klass.GetDeclaredField("mInsetsDirty"); 
+0

乾淨的解釋,其工作要點更新,HTTPS://gist.github.com/ jaganjan/3ee7059866cbaa5f155d –

+0

對於遲到的回覆感到抱歉,即時消息在印度只有 –

+0

非常感謝! –