Нажмите За пределами RecyclerView, чтобы скрыть ChildView в строке RecyclerView - PullRequest
0 голосов
/ 04 ноября 2019

У меня есть простой 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); }; 

. Это работает, но отключает прокрутку в представлении рециркулятора.

Каков наилучший способ достичь этого?

1 Ответ

0 голосов
/ 04 ноября 2019

Этот вызов метода всякий раз, когда вы нажимаете на элемент recylerview

itemView.setOnClickListener(v -> {
               // Add your functionalities here

            });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...