Java 单声道反射 android
Java reflection for mono android
我正面临 WRAP_CONTENT not work on a RecyclerView
,所以我用谷歌搜索并找到了解决方法。当我尝试在 C# 中实现解决方法时,我被困在这一行:
insetsDirtyField = RecyclerView.LayoutParams.class.getDeclaredField("mInsetsDirty");
I was stuck at this line:
insetsDirtyField = RecyclerView.LayoutParams.class.getDeclaredField("mInsetsDirty");
Java中的.class
“关键字”等同于C#中的typeof()
关键字,所以这是(kinda/sorta)如:
var insetsDirtyField = typeof(RecyclerView.LayoutParams).GetDeclaredField("mInsetsDirty");
除了它不是,因为 typeof()
returns 一个 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");
我正面临 WRAP_CONTENT not work on a RecyclerView
,所以我用谷歌搜索并找到了解决方法。当我尝试在 C# 中实现解决方法时,我被困在这一行:
insetsDirtyField = RecyclerView.LayoutParams.class.getDeclaredField("mInsetsDirty");
I was stuck at this line:
insetsDirtyField = RecyclerView.LayoutParams.class.getDeclaredField("mInsetsDirty");
Java中的.class
“关键字”等同于C#中的typeof()
关键字,所以这是(kinda/sorta)如:
var insetsDirtyField = typeof(RecyclerView.LayoutParams).GetDeclaredField("mInsetsDirty");
除了它不是,因为 typeof()
returns 一个 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");