Android RecylerView按钮不会触发

Android RecylerView按钮不会触发,android,xamarin,android-recyclerview,xamarin.android,mvvmcross,Android,Xamarin,Android Recyclerview,Xamarin.android,Mvvmcross,我的回收卡上有一个按钮,用于显示弹出菜单 但是,每当用户单击此按钮时,popupMenu不会出现。甚至我在菜单选项按钮中也放置了一个断点。单击操作,它不会命中 XML格式的ImageButton <ImageButton android:id="@+id/MoreSettings" android:layout_width="40dp" android:layout_height="40dp" android:layout_alignParentRight=

我的回收卡上有一个按钮,用于显示
弹出菜单

但是,每当用户单击此按钮时,
popupMenu
不会出现。甚至我在
菜单选项按钮中也放置了一个断点。单击
操作,它不会命中

XML格式的ImageButton

<ImageButton
    android:id="@+id/MoreSettings"
    android:layout_width="40dp"
    android:layout_height="40dp"
    android:layout_alignParentRight="true"
    android:src="@drawable/ic_more_black_24dp" /> 
更新:

活动.cs

public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
    var ignored = base.OnCreateView(inflater, container, savedInstanceState);
    var view = this.BindingInflate(Resource.Layout.AView, null);   
    HasOptionsMenu = true;
    toolbar = ((MainView)Activity).SupportActionBar;   
    var recyclerView = view.FindViewById<MvxRecyclerView>(Resource.Id.ARecyclerView);
    if (recyclerView != null)
    {
        recyclerView.HasFixedSize = true;
        recyclerView.Adapter = new RecyclerAdapter((IMvxAndroidBindingContext)BindingContext, Activity);
        var layoutManager = new LinearLayoutManager(Activity);
        recyclerView.SetLayoutManager(layoutManager);
      }
    return view;
}
public override视图OnCreateView(布局、充气机、视图组容器、Bundle savedInstanceState)
{
忽略变量=base.OnCreateView(充气机、容器、savedInstanceState);
var view=this.BindingInflate(Resource.Layout.AView,null);
HasOptions菜单=true;
工具栏=((主视图)活动);
var recyclerView=view.findviewbyd(Resource.Id.ARecyclerView);
如果(recyclerView!=null)
{
recyclerView.HasFixedSize=true;
Adapter=new RecyclerAdapter((IMvxAndroidBindingContext)BindingContext,Activity);
var layoutManager=新的LinearLayoutManager(活动);
recyclerView.SetLayoutManager(layoutManager);
}
返回视图;
}

在您的RecyclerView.Adapter代码中,在OnBindViewHolder方法中添加单击委托时应小心。如果添加为C#匿名函数,则每次视图显示新委托时,都将添加而不是设置

首先,应将此行放置在ViewHolder构造函数方法中:

this.menuOptionsButton = view.FindViewById<ImageButton>(Resource.Id.MoreSettings);

id不同于
MoreOptions
vs
MoreSettings
对不起,是打字错误,我已修复并向我的问题中添加了其他信息。您是否将链接器设置为仅
Sdk程序集
Sdk和用户程序集
?链接器属性为
none
@hotstring是否有
RecyclerView.ViewHolder
子类?你能添加你的
RecyclerAdapter.OnCreateViewHolder
override。。。。
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
    var ignored = base.OnCreateView(inflater, container, savedInstanceState);
    var view = this.BindingInflate(Resource.Layout.AView, null);   
    HasOptionsMenu = true;
    toolbar = ((MainView)Activity).SupportActionBar;   
    var recyclerView = view.FindViewById<MvxRecyclerView>(Resource.Id.ARecyclerView);
    if (recyclerView != null)
    {
        recyclerView.HasFixedSize = true;
        recyclerView.Adapter = new RecyclerAdapter((IMvxAndroidBindingContext)BindingContext, Activity);
        var layoutManager = new LinearLayoutManager(Activity);
        recyclerView.SetLayoutManager(layoutManager);
      }
    return view;
}
this.menuOptionsButton = view.FindViewById<ImageButton>(Resource.Id.MoreSettings);
public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position)
{
    base.OnBindViewHolder(holder, position);
    var optionsButton = ((YourHolder)holder).menuOptionsButton;

    // This avoids adding a Click event more than once
    optionsButton.Click -= this.PopupShow;
    optionsButton.Click += this.PopupShow;
}

private void PopupShow(object sender, EventArgs e)
{
    Toast.MakeText(this.context, "Button clicked", ToastLength.Short).Show();
    var popup = new PopupMenu(_activity, menuOptionsButton );
    popup.MenuInflater.Inflate(Resource.Menu.menu,popup.Menu);
    popup.Show();
}