У меня есть простой RecyclerView
, и когда вы LongClick
Ряд в RecyclerView
, я делаю скрытый LinearLayout
видимым в этом ряду. Для этого В моем public override RecyclerView.ViewHolder OnCreateViewHolder(ViewGroup parent, int viewType)
я использую следующее
LinearLayout REACTION_LAYOUT = RecyclerItem.FindViewById<LinearLayout>(Resource.Id.reaction_layout);
RecyclerItem.LongClick += (sender, e) => { OnLongClick(REACTION_LAYOUT); };
REACTION_LAYOUT
- это макет, который я показываю с использованием следующего
private void OnLongClick(LinearLayout _ReactionLayout)
{
try
{
_ReactionLayout.Visibility = ViewStates.Visible;
}
catch (Exception X)
{
Log.Info("1022585", "CLICK (ERROR) : " + X.Message);
}
}
Это работает как и предполагалось, теперь чтоЯ хочу, чтобы скрыть REACTION_LAYOUT
, когда пользователь касается где-нибудь за пределами строки, что означает в других строках в RecyclerView или в любом другом месте
Как мне это сделать?
Подход, который я пыталсяиспользовалось обнаружение касания parent
в OnCreateViewHolder
моего адаптера следующим образом:
parent.Click += (sender, e) => { OnParentClick(REACTION_LAYOUT); };
. Это работает, но отключает прокрутку в представлении рециркулятора.
Каков наилучший способ достичь этого?