Xamarin Android:Resource.designer Id与Android组件Id不匹配
我试图在SearchView小部件中找到一个ImageView,ImageView的Id名称是search\u close\u btn。我用这行代码查找它,但是它返回nullXamarin Android:Resource.designer Id与Android组件Id不匹配,xamarin,xamarin.android,Xamarin,Xamarin.android,我试图在SearchView小部件中找到一个ImageView,ImageView的Id名称是search\u close\u btn。我用这行代码查找它,但是它返回null closeButton=searchView.findviewbyd(Resource.Id.search\u close\u btn) 我调查了search视图的子项,找到了ImageView,发现子项的Id与设计器中的Id不匹配 我很好奇正确的Id存储在哪里,因为我必须手动搜索视图才能找到它。 java的R.Id是否等
closeButton=searchView.findviewbyd(Resource.Id.search\u close\u btn)代码>
我调查了search视图的子项,找到了ImageView,发现子项的Id与设计器中的Id不匹配
我很好奇正确的Id存储在哪里,因为我必须手动搜索视图才能找到它。
java的R.Id是否等同于Xamarin的Resource.Id一旦有了对SearchView的引用,请尝试以下操作:
int searchPlateId = searchView.Context.Resources.GetIdentifier("android:id/search_plate", null, null);
View searchPlate = searchView.FindViewById(searchPlateId);
if (searchPlate != null)
{
int imgViewId = searchPlate.Context.Resources.GetIdentifier("android:id/search_close_btn", null, null);
ImageView imgView = (ImageView)searchPlate.FindViewById(imgViewId);
if (imgView != null)
{
Console.WriteLine("Found you image view: {0}", imgView);
}
}
谢谢,这太完美了。因为我只需要搜索\u close\u btn,所以我简化了它var closeBtnId=searchView.Context.Resources.GetIdentifier(“android:id/search\u close\u btn”,null,null);closeButton=searchView.FindViewById(closeBtnId)代码>