J'ai un bouton dans ma carte recycleur qui est nécessaire pour montrer un popupMenu
Bouton RecylerView ne justifie pas la
Cependant, chaque fois que l'utilisateur clique sur ce bouton, popupMenu
ne semble pas. Même si je mets un point de rupture à l'intérieur de l'action menuOptionsButton.Click
, il ne frappe pas.
ImageButton en XML
<ImageButton
android:id="@+id/MoreSettings"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_alignParentRight="true"
android:src="@drawable/ic_more_black_24dp" />
RecyclerViewAdapter.cs
public class RecyclerAdapter : MvxRecyclerAdapter
{
private readonly FragmentActivity _activity;
public RecyclerAdapter(IMvxAndroidBindingContext bindingContext, FragmentActivity activity)
: base(bindingContext)
{
_activity = activity;
}
public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position)
{
base.OnBindViewHolder(holder, position);
var view = holder.ItemView;
var menuOptionsButton = view.FindViewById<ImageButton>(Resource.Id.MoreSettings);
menuOptionsButton.Click += (s, e) =>
{
var popup = new PopupMenu(_activity, menuOptionsButton);
popup.MenuInflater.Inflate(Resource.Menu.menu,popup.Menu);
popup.Show();
};
}
}
Si je ne mets pas popupMenu
dans l'action de clic, chaque élément de la recyclerview montre une popupMenu
, mais Je veux avoir une action clique pour montrer popUpMenu
.
public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position)
{
base.OnBindViewHolder(holder, position);
var view = holder.ItemView;
var menuOptionsButton = view.FindViewById<ImageButton>(Resource.Id.MoreSettings);
var popup = new PopupMenu(_activity, menuOptionsButton);
popup.MenuInflater.Inflate(Resource.Menu.menu,popup.Menu);
popup.Show();
}
MISE À JOUR:
Activity.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;
}
L'id est différent '' MoreOptions' vs MoreSettings' – Plac3Hold3r
Désolé, il était faute de frappe, J'ai corrigé et ajoute également des informations supplémentaires à ma question. – hotspring
Est-ce que vous construisez peut-être avec l'éditeur de liens défini sur 'Sdk Assemblies Only' ou' Sdk and user Assemblies'? – Plac3Hold3r