簡體   English   中英

在RecyclerView Cell元素上具有多種單擊類型-Xamarin.Android

[英]Having Multiple Type of Click On RecyclerView Cell elements - Xamarin.Android

對於Xamarin.Android中RecyclerView中的單元格上的Click listner,我們有一個通用方法:

mAdapter.ItemClick += OnItemClick; // in OnCreate

void OnItemClick (object sender, int position)
        {
            // Display a toast that briefly shows the enumeration of the selected photo:
            int photoNum = position + 1;
            Toast.MakeText(this, "This is photo number " + photoNum, ToastLength.Short).Show();
        }

在ViewHolder中,我們輸入以下代碼:

itemView.Click += (sender, e) => listener (base.LayoutPosition);

在RecyclerView.Adapter中,我們有:

public event EventHandler<int> ItemClick;

與:

// Raise an event when the item-click takes place:
        void OnClick (int position)
        {
            if (ItemClick != null)
                ItemClick (this, position);
        }

一切正常,但是如果我想在ViewHolder中單擊一種以上的項目,該如何管理呢?

例如,我想定義一個單擊Image的按鈕以打開一個活動。 如果用戶在同一ViewHolder中單擊TextView,它將執行另一項操作。

Image = itemView.FindViewById<ImageView> (Resource.Id.imageView); 
Image.Click += (sender, e) => listener (base.LayoutPosition); 
Caption = itemView.FindViewById<TextView> (Resource.Id.textView); 
Caption.Click += ???

您可以使用接口來處理這種情況。

我已經在github上發布了我的項目。

更新:

您可以使用ViewsetTag方法存儲位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM